perm filename V243.XGP[TEX,DEK]1 blob sn#379674 filedate 1978-09-08 generic text, type T, neo UTF8
/LMAR=50/TMAR=50/RMAR=4095/BMAR=1/PMAR=0/XLINE=0/FONT#0=NGR13/USETI=0000505*TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX**TEX*

␈β	←␈↓ α6␈εαSECTION␈α4.3␈αof␈αTHE␈αAR␈α⎇T␈αOF␈αCOMPUTER␈αPR␈α␈OGRAMMING
␈β

␈↓ β%␈ε⊗⎇␈εα␈α1978␈αAddison↑Wesley␈αPublishing␈αCompan␈α␈y,␈αInc.
␈β⊃L␈↓ ε2␈ε∧0
␈β∪(

␈β↓Y␈↓ ↓H␈εα4.3.1␈ε∞␈↓ π⊗TH␈α␈E␈α	CLASSICA␈α␈L␈α	AL␈α␈GORITH␈α␈MS␈↓ 
v␈εα247
␈βα(␈↓ ↓H␈ε≥4␈α␈.3.␈α
MUL␈α|TIP␈α↓LE␈α␈-P␈α↓RECISION␈α∞ARITHM␈α␈ETIC
␈βαo␈↓ ↓H␈εαL␈↓ β⊗␈εαconsider␈α	operations␈αλon␈α	n␈α␈um␈α␈bers␈α	that␈αλhav␈α␈e␈α	arbitrarily␈α	high␈αλprecision.
␈βαt␈↓ ↓`␈ε∧ET␈αλUS␈απNO␈α␈W
␈ββ~␈↓ ↓H␈εαFor␈αsimplicity␈αin␈αexposition,␈αw␈α␈e␈αshall␈αassume␈αthat␈αw␈α␈e␈αare␈αw␈α␈orking␈αwith␈αin␈α␈tegers,
␈ββE␈↓ ↓H␈εαinstead␈αof␈αwith␈αn␈α␈um␈α␈bers␈αthat␈αhav␈α␈e␈αan␈αem␈α␈bedded␈αradix␈αpoin␈α␈t.
␈β∧Z␈↓ ↓H␈ε≥4␈α␈.3.1.␈α
The␈α
Clas␈α↓sical␈α
Algorithms
␈β¬!␈↓ ↓H␈εαIn␈αthis␈αsection␈αw␈α␈e␈αshall␈αdiscuss␈αalgorithms␈αfor:
␈β¬m␈↓ ↓b␈εαa)␈↓ α␈εαaddition␈α
or␈αsubtraction␈α
of␈↓ ¬1␈ελn␈↓ ¬F␈εα-place␈α
in␈α␈tegers,␈α
giving␈αan␈↓ λ↑␈ελn␈↓ λt␈εα-place␈αansw␈α␈er␈α
and␈αa
␈βε_␈↓ α␈εαcarry;
␈βεT␈↓ ↓`␈εαb)␈↓ α␈εαm␈α␈ultiplication␈αλof␈α	an␈↓ ∧D␈ελn␈↓ ∧Z␈εα-place␈αλin␈α␈teger␈αλby␈α	an␈↓ π⊂␈ελm␈↓ π0␈εα-place␈αλin␈α␈teger,␈α	giving␈α	an␈αλ(␈↓ 
5␈ελm␈↓ 
X␈εα+␈↓ 
␈␈ελn␈↓ ∀␈εα)-
␈βε␈␈↓ α␈εαplace␈αansw␈α␈er;
␈βπ;␈↓ ↓d␈εαc)␈↓ α␈εαdivision␈α	of␈α	an␈α	(␈↓ βq␈ελm␈↓ ∧∃␈εα+␈↓ ∧=␈ελn␈↓ ∧S␈εα)-place␈α	in␈α␈teger␈α	by␈α
an␈↓ π→␈ελn␈↓ π.␈εα-place␈α	in␈α␈teger,␈α
giving␈α	an␈α	(␈↓ 
6␈ελm␈↓ 
Z␈εα+␈α∧1)-
␈βπg␈↓ α␈εαplace␈αquotien␈α␈t␈αand␈αan␈↓ ∧m␈ελn␈↓ ¬β␈εα-place␈αremainder.
␈βλ2␈↓ ↓H␈εαThese␈αmay␈αbe␈αcalled␈α\the␈αclassical␈αalgorithms,"␈αsince␈αthe␈αw␈α␈ord␈α\algorithm"␈αwas
␈βλ↑␈↓ ↓H␈εαused␈αonly␈αin␈αconnection␈αwith␈αthese␈αprocesses␈αfor␈αsev␈α␈eral␈αcen␈α␈turies.␈αThe␈αterm␈α\␈↓ ␈ελn␈↓  ␈εα-
␈β	∧␈↓ πε␈εn
␈β		␈↓ ↓H␈εαplace␈α
in␈α␈teger"␈α∞means␈α∞an␈α␈y␈α
in␈α␈teger␈α∞less␈α
than␈↓ εx␈ελb␈↓ π_␈εα,␈α∞where␈↓ λ~␈ελb␈↓ λ6␈εαis␈α∞the␈α
radix␈α∞of␈α
ordinary
␈β	4␈↓ ↓H␈εαpositional␈α∞notation␈α∂in␈α∂which␈α∂the␈α∂n␈α␈um␈α␈bers␈α∂are␈α∂expressed;␈α⊂such␈α∂n␈α␈um␈α␈bers␈α∂can␈α∞be
␈β	←␈↓ ↓H␈εαwritten␈αusing␈αat␈αmost␈↓ ∧(␈ελn␈↓ ∧I␈εα\places"␈αin␈αthis␈αnotation.
␈β
␈↓ α␈εαIt␈α
is␈α
a␈αstraigh␈α␈tforward␈α
matter␈α
to␈α
apply␈αthe␈α
classical␈α
algorithms␈α
for␈αin␈α␈tegers
␈β
7␈↓ ↓H␈εαto␈α
n␈α␈um␈α␈bers␈α
with␈α
em␈α␈bedded␈α
radix␈α
poin␈α␈ts␈α
or␈α
to␈α
extended-precision␈α
⎇oating-poin␈α␈t
␈β
b␈↓ ↓H␈εαn␈α␈um␈α␈bers,␈αin␈α
the␈αsame␈αway␈αthat␈αarithmetic␈α
operations␈αde|ned␈αfor␈αin␈α␈tegers␈αin␈ε∃␈α
MIX
␈β∞␈↓ ↓H␈εαare␈αapplied␈αto␈αthese␈αmore␈αgeneral␈αproblems.
␈β:␈↓ α␈εαIn␈αthis␈αsection␈αw␈α␈e␈αshall␈αstudy␈αalgorithms␈αthat␈αdo␈αoperations␈α(a),␈α(b),␈αand␈α(c)
␈βe␈↓ ↓H␈εαabo␈α␈v␈α␈e␈α∂for␈α⊂in␈α␈tegers␈α∂expressed␈α⊂in␈α∂radix␈↓ ε*␈ελb␈↓ εG␈εαnotation,␈α⊃where␈↓ λQ␈ελb␈↓ λo␈εαis␈α∂an␈α␈y␈α⊂giv␈α␈en␈α∂in␈α␈teger
␈β⊃␈↓ ↓H␈ε⊗∃␈εα␈α2.␈α⊂Th␈α␈us␈α∞the␈α
algorithms␈α∞are␈α
quite␈α∞general␈α
de|nitions␈α∞of␈α
arithmetic␈α
processes,
␈β<␈↓ ↓H␈εαand␈α
as␈α
such␈α
they␈α∞are␈α
unrelated␈α
to␈α∞an␈α␈y␈α
particular␈α
computer.␈α⊂But␈α
the␈α
discussion
␈βg␈↓ ↓H␈εαin␈αthis␈αsection␈αwill␈αalso␈αbe␈αsomewhat␈αmachine-orien␈α␈ted,␈αsince␈αw␈α␈e␈αare␈αchie⎇y␈αcon-
␈β
∩␈↓ ↓H␈εαcerned␈αwith␈α
e}cien␈α␈t␈αmethods␈αfor␈αdoing␈αhigh-precision␈αcalculations␈αby␈α
computer.
␈β
=␈↓ ↓H␈εαAlthough␈α⊃our␈α⊃examples␈α⊃are␈α⊃based␈α⊃on␈α∩the␈α⊃m␈α␈ythical␈ε∃␈α⊃MI␈α␈X␈εα,␈α⊃essen␈α␈tially␈α⊃the␈α⊃same
␈β
i␈↓ ↓H␈εαconsiderations␈α
apply␈α∞to␈α∞nearly␈α
ev␈α␈ery␈α∞other␈α∞machine.␈α⊃For␈α∞con␈α␈v␈α␈enience,␈α∞w␈α␈e␈α
shall
␈β∞∀␈↓ ↓H␈εαassume␈α|rst␈αthat␈αw␈α␈e␈αhav␈α␈e␈αa␈αcomputer␈α(lik␈α␈e␈ε∃␈αMIX␈εα␈α␈)␈αthat␈αuses␈αthe␈αsigned-magnitude
␈β∞?␈↓ ↓H␈εαrepresen␈α␈tation␈α
for␈αn␈α␈um␈α␈bers;␈αsuitable␈αmodi|cations␈αfor␈αcomplemen␈α␈t␈αnotations␈α
are
␈β∞j␈↓ ↓H␈εαdiscussed␈αnear␈αthe␈αend␈αof␈αthis␈αsection.
␈β∂↔␈↓ α␈εαThe␈α	most␈α
importan␈α␈t␈α	fact␈α	to␈α	understand␈α
about␈α	extended-precision␈α	n␈α␈um␈α␈bers␈α	is
␈β∂B␈↓ ↓H␈εαthat␈αλthey␈αλmay␈α	be␈αλregarded␈αλas␈αλn␈α␈um␈α␈bers␈α	written␈αλin␈αλradix␈↓ λ→␈ελw␈↓ λ<␈εαnotation,␈α	where␈↓ 
7␈ελw␈↓ 
Z␈εαis␈αλthe
␈β∂m␈↓ ↓H␈εαcomputer's␈αw␈α␈ord␈αsize.␈αFor␈αexample,␈αan␈αin␈α␈teger␈αthat␈α|lls␈α10␈αw␈α␈ords␈αon␈αa␈αcomputer
␈β⊂∀␈↓ ∧]␈ε¬10
␈β⊂→␈↓ ↓H␈εαwhose␈α	w␈α␈ord␈αλsize␈α	is␈↓ βf␈ελw␈↓ ∧␈εα=␈α
1␈↓ ∧K␈εα0␈↓ ¬β␈εαhas␈α	100␈αλdecimal␈α	digits;␈α
but␈α	w␈α␈e␈α	will␈α	consider␈α	it␈α	to␈α	be␈αλa
␈β⊂?␈↓ ¬,␈ε¬10
␈β⊂D␈↓ ↓H␈εα10-place␈α
n␈α␈um␈α␈ber␈αto␈α
the␈α
base␈α1␈↓ ¬~␈εα0␈↓ ¬I␈εα.␈αThis␈αviewpoin␈α␈t␈α
is␈αjusti|ed␈α
for␈αthe␈α
same␈α
reason
␈β⊂o␈↓ ↓H␈εαthat␈α
w␈α␈e␈α
may␈α
con␈α␈v␈α␈ert,␈α
say,␈αfrom␈α
binary␈α
to␈α
octal␈α
notation,␈α
simply␈α
by␈α
grouping␈α
the
␈β⊃~␈↓ ↓H␈εαbits␈αtogether.␈α(See␈αEq.␈α4.1↑5.)
␈β∪(

␈β↓Y␈↓ ↓H␈εα248␈↓ α=␈ε∞A␈α␈RITH␈α␈METIC␈εα␈↓ 
b4.3.1
␈βα(␈↓ α␈εαIn␈α
these␈α
terms,␈α
w␈α␈e␈α	are␈α
giv␈α␈en␈α
the␈α
follo␈α␈wing␈α	primitiv␈α␈e␈α
operations␈α
to␈α
w␈α␈ork␈α	with:
␈βα↑␈↓ ↓T␈εαa␈↓ ↓t␈εα)␈↓ α␈εαaddition␈αor␈αsubtraction␈αof␈αone-place␈αin␈α␈tegers,␈αgiving␈αa␈αone-place␈αansw␈α␈er␈αand
␈βαk␈↓ ↓f␈ε¬0
␈ββ	␈↓ α␈εαa␈αcarry;
␈ββ?␈↓ ↓R␈εαb␈↓ ↓t␈εα)␈↓ α␈εαm␈α␈ultiplication␈α
of␈αa␈α
one-place␈α
in␈α␈teger␈α
by␈αanother␈α
one-place␈α
in␈α␈teger,␈α
giving␈αa
␈ββL␈↓ ↓f␈ε¬0
␈ββj␈↓ α␈εαt␈α␈w␈α␈o-place␈αansw␈α␈er;
␈β∧ ␈↓ ↓V␈εαc␈↓ ↓t␈εα)␈↓ α␈εαdivision␈α⊃of␈α⊃a␈α⊂t␈α␈w␈α␈o-place␈α⊃in␈α␈teger␈α⊃by␈α⊃a␈α⊂one-place␈α⊃in␈α␈teger,␈α∩pro␈α␈vided␈α⊃that␈α⊂the
␈β∧-␈↓ ↓f␈ε¬0
␈β∧K␈↓ α␈εαquotien␈α␈t␈αis␈αa␈αone-place␈αin␈α␈teger,␈αand␈αyielding␈αalso␈αa␈αone-place␈αremainder.
␈β¬↓␈↓ ↓H␈εαBy␈απadjusting␈αλthe␈αλw␈α␈ord␈αλsize,␈αλif␈αλnecessary,␈α	nearly␈αλall␈απcomputers␈αλwill␈αλhav␈α␈e␈αλthese␈απthree
␈β¬,␈↓ ↓H␈εαoperations␈αavailable;␈αso␈αw␈α␈e␈αwill␈αconstruct␈αalgorithms␈α(a),␈α(b),␈αand␈α(c)␈αmen␈α␈tioned
␈β¬W␈↓ ↓H␈εαabo␈α␈v␈α␈e␈αin␈αterms␈αof␈αthe␈αprimitiv␈α␈e␈αoperations␈α(a␈↓ π→␈εα),␈α(b␈↓ πi␈εα),␈αand␈α(c␈↓ λ|␈εα).
␈β¬e␈↓ π␈ε¬0␈↓ π[␈ε¬0␈↓ λm␈ε¬0
␈βεα␈↓ α␈εαSince␈αw␈α␈e␈αare␈αvisualizing␈αextended-precision␈αin␈α␈tegers␈αas␈αbase␈↓ 	=␈ελb␈↓ 	W␈εαn␈α␈um␈α␈bers,␈αit␈αis
␈βε.␈↓ ↓H␈εαsometimes␈α
helpful␈α
to␈α
think␈α
of␈α
the␈α
situation␈α
when␈↓ πF␈ελb␈↓ π←␈εα=␈α
10,␈α
and␈α
to␈α
imagine␈α
that␈α
w␈α␈e
␈βεY␈↓ ↓H␈εαare␈αλdoing␈αλthe␈αλarithmetic␈αλby␈αλhand.␈αThen␈αλoperation␈αλ(a␈↓ πx␈εα)␈αλis␈αλanalogous␈αλto␈αλmemorizing
␈βεf␈↓ πi␈ε¬0
␈βπ∧␈↓ ↓H␈εαthe␈α
addition␈αtable;␈α(b␈↓ ∧#␈εα)␈αis␈α
analogous␈αto␈αmemorizing␈αthe␈α
m␈α␈ultiplication␈αtable;␈αand
␈βπ⊃␈↓ ∧∀␈ε¬0
␈βπ/␈↓ ↓H␈εα(c␈↓ ↓r␈εα)␈αis␈αessen␈α␈tially␈α
memorizing␈αthe␈αm␈α␈ultiplication␈αtable␈αin␈α
rev␈α␈erse.␈αThe␈αmore␈α
com-
␈βπ=␈↓ ↓d␈ε¬0
␈βπZ␈↓ ↓H␈εαplicated␈α
operations␈α
(a),␈α(b),␈α
(c)␈αon␈α
high-precision␈α
n␈α␈um␈α␈bers␈α
can␈αno␈α␈w␈α
be␈α
done␈α
using
␈βλε␈↓ ↓H␈εαthe␈α⊂simple␈α⊂addition,␈α⊃subtraction,␈α⊃m␈α␈ultiplication,␈α⊃and␈α⊂long␈α⊂division␈α⊂procedures
␈βλ1␈↓ ↓H␈εαw␈α␈e␈αare␈αtaugh␈α␈t␈αin␈αelemen␈α␈tary␈αschool.␈αIn␈αfact,␈αmost␈αof␈αthe␈αalgorithms␈αw␈α␈e␈αshall␈αdis-
␈βλ\␈↓ ↓H␈εαcuss␈αin␈αthis␈αsection␈αare␈αessen␈α␈tially␈αnothing␈αmore␈αthan␈αmechanizations␈αof␈αfamiliar
␈β	π␈↓ ↓H␈εαpencil-and-paper␈α	operations.␈αOf␈α
course,␈α
w␈α␈e␈α
m␈α␈ust␈α	state␈α
the␈α	algorithms␈α
m␈α␈uch␈α	more
␈β	2␈↓ ↓H␈εαprecisely␈αthan␈αthey␈αhav␈α␈e␈αev␈α␈er␈αbeen␈αstated␈αin␈αthe␈α|fth␈αgrade,␈αand␈αw␈α␈e␈αshould␈αalso
␈β	↑␈↓ ↓H␈εαattempt␈αto␈αminimize␈αcomputer␈αmemory␈αand␈αrunning␈αtime␈αrequiremen␈α␈ts.
␈β
	␈↓ α␈εαTo␈α
av␈α␈oid␈α
a␈α
tedious␈α
discussion␈α
and␈α
cum␈α␈bersome␈α
notations,␈α
let␈α
us␈α
assume␈α
that
␈β
4␈↓ ↓H␈εαall␈α	n␈α␈um␈α␈bers␈α
w␈α␈e␈α
deal␈α	with␈α
are␈ε∂␈α
nonnegativ␈α␈e.␈εα␈αThe␈α
additional␈α	w␈α␈ork␈α
of␈α
computing␈α	the
␈β
←␈↓ ↓H␈εαsigns,␈αetc.,␈αis␈αquite␈αstraigh␈α␈tforward,␈αand␈αthe␈αreader␈αwill␈α|nd␈αit␈αeasy␈αto␈α|ll␈αin␈αan␈α␈y
␈β
␈↓ ↓H␈εαdetails␈αof␈αthis␈αsort.
␈β6␈↓ α␈εαFirst␈α	comes␈α
addition,␈α
which␈α	of␈α	course␈α
is␈α	v␈α␈ery␈α	simple,␈α
but␈α	it␈α
is␈α	w␈α␈orth␈α	studying
␈βa␈↓ ↓H␈εαsince␈αthe␈αsame␈αideas␈αoccur␈αin␈αthe␈αother␈αalgorithms␈αalso:
␈β!␈↓ ↓H␈ε∩Algorithm␈α⊃A␈εα␈α∩(␈ε∂Addition␈α∩of␈α⊃nonnegativ␈α␈e␈α∩in␈α␈tegers␈↓ πD␈εα)␈ε∩.␈εα␈α$Giv␈α␈en␈α⊃nonnegativ␈α␈e␈↓ 
;␈ελn␈↓ 
P␈εα-place
␈βL␈↓ ↓H␈εαin␈α␈tegers␈α∞(␈↓ α[␈ελu␈↓ α}␈ελu␈↓ β'␈εα.␈αε.␈αε.␈↓ βW␈ελu␈↓ β⎇␈εα)␈↓ ∧#␈εαand␈α∞(␈↓ ∧w␈ελv␈↓ ¬∃␈ελv␈↓ ¬:␈εα.␈αε.␈αε.␈↓ ¬j␈ελv␈↓ ε␈εα)␈↓ ε#␈εα,␈α∂this␈α∞algorithm␈α∞forms␈α∞their␈α∞radix-␈↓ 
F␈ελb␈↓ 
b␈εαsum,
␈βZ␈↓ αo␈ε¬1␈↓ β∩␈ε¬2␈↓ βk␈εn␈↓ ∧	␈εb␈↓ ¬π␈ε¬1␈↓ ¬%␈ε¬2␈↓ ¬y␈εn␈↓ ε↔␈εb
␈βx␈↓ ↓H␈εα(␈↓ ↓T␈ελw␈↓ ↓z␈ελw␈↓ α ␈ελw␈↓ αL␈εα.␈αε.␈αε.␈↓ α|␈ελw␈↓ β&␈εα)␈↓ β>␈εα.␈α(Here␈↓ ∧4␈ελw␈↓ ∧f␈εαis␈αthe␈α\carry,"␈αand␈αit␈αwill␈αalways␈αbe␈αequal␈αto␈α0␈αor␈α1.)
␈β
¬␈↓ ↓k␈ε¬0␈↓ α∩␈ε¬1␈↓ α8␈ε¬2␈↓ β∀␈εn␈↓ β2␈εb␈↓ ∧L␈ε¬0
␈β
-␈↓ ↓J␈ε∩A1.␈↓ α␈εα[Initialize.]␈α~Set␈↓ ∧
␈ελj␈↓ ∧$␈ε⊗ ␈↓ ∧R␈ελn␈↓ ∧h␈εα,␈↓ ∧}␈ελk␈↓ ¬~␈ε⊗ ␈εα␈α0.␈α(The␈αvariable␈↓ πQ␈ελj␈↓ πn␈εαwill␈αrun␈αthrough␈αthe␈αvarious
␈β
Y␈↓ α␈εαdigit␈αpositions,␈αand␈αthe␈αvariable␈↓ ε∞␈ελk␈↓ ε,␈εαk␈α␈eeps␈αtrack␈αof␈αcarries␈αat␈αeach␈αstep.)
␈β∞∞␈↓ ↓J␈ε∩A2.␈↓ α␈εα[Add␈αdigits.]␈α~Set␈↓ ∧&␈ελw␈↓ ∧V␈ε⊗ ␈εα␈α
(␈↓ ¬⊂␈ελu␈↓ ¬:␈εα+␈↓ ¬g␈ελv␈↓ ε␈εα+␈↓ ε8␈ελk␈↓ εJ␈εα)␈↓ ε\␈εαmod␈↓ π&␈ελb␈↓ π4␈εα,␈α
and␈↓ λ⊃␈ελk␈↓ λ-␈ε⊗ ␈αb␈εα(␈↓ λv␈ελu␈↓ 	 ␈εα+␈↓ 	L␈ελv␈↓ 	q␈εα+␈↓ 
≥␈ελk␈↓ 
/␈εα)/␈↓ 
M␈ελb␈↓ 
\␈ε⊗c␈εα.␈α(In
␈β∞≤␈↓ ∧>␈εj␈↓ ¬%␈εj␈↓ ¬v␈εj␈↓ 	
␈εj␈↓ 	\␈εj
␈β∞:␈↓ α␈εαother␈α
w␈α␈ords,␈↓ βW␈ελk␈↓ βr␈εαis␈α	set␈α
to␈α
1␈α	or␈α
0,␈α
depending␈α	on␈α
whether␈α	a␈α
\carry"␈α	occurs␈α
or␈α	not,
␈β∞e␈↓ α␈εαi.e.,␈α
whether␈↓ β]␈ελu␈↓ ∧π␈εα+␈↓ ∧4␈ελv␈↓ ∧Z␈εα+␈↓ ¬ε␈ελk␈↓ ¬$␈ε⊗∃␈↓ ¬T␈ελb␈↓ ¬o␈εαor␈α
not.␈α⊂At␈α
most␈α
one␈α
carry␈α
is␈α
possible␈α
during
␈β∞r␈↓ βq␈εj␈↓ ∧D␈εj
␈β∂⊂␈↓ α␈εαthe␈αt␈α␈w␈α␈o␈αadditions,␈αsince␈αw␈α␈e␈αalways␈αhav␈α␈e
␈β∂f␈↓ ∧	␈ελu␈↓ ∧3␈εα+␈↓ ∧←␈ελv␈↓ ¬∧␈εα+␈↓ ¬0␈ελk␈↓ ¬L␈ε⊗∀␈εα␈α
(␈↓ εε␈ελb␈↓ ε≤␈ε⊗␈␈εα␈αλ1)␈αλ+␈αλ(␈↓ π&␈ελb␈↓ π=␈ε⊗␈␈εα␈αλ1)␈αλ+␈αλ1␈α
<␈α
2␈↓ 	↔␈ελb␈↓ 	%␈εα,
␈β∂s␈↓ ∧≡␈εj␈↓ ∧o␈εj
␈β⊂;␈↓ α␈εαby␈αinduction␈αon␈αthe␈αcomputation.)
␈β⊂q␈↓ ↓J␈ε∩A3.␈↓ α␈εα[Loop␈α
on␈↓ β ␈ελj␈↓ β0␈εα.]␈α∀Decrease␈↓ ∧l␈ελj␈↓ ¬ε␈εαby␈α
one.␈αNo␈α␈w␈α
if␈↓ εt␈ελj␈↓ π∞␈εα>␈α
0,␈αgo␈α	back␈α
to␈α
step␈α
A2;␈α
otherwise
␈β⊃≤␈↓ α␈εαset␈↓ αD␈ελw␈↓ αt␈ε⊗ ␈↓ β"␈ελk␈↓ β@␈εαand␈αterminate␈αthe␈αalgorithm.
␈β⊃!␈↓ π2␈∧⊃!π2≠∂
␈β⊃)␈↓ α\␈ε¬0
␈β∪(

␈β↓Y␈↓ ↓H␈εα4.3.1␈ε∞␈↓ π⊗TH␈α␈E␈α	CLASSICA␈α␈L␈α	AL␈α␈GORITH␈α␈MS␈↓ 
v␈εα249
␈βα(␈↓ ↓H␈εαFor␈αa␈αformal␈αproof␈αthat␈αAlgorithm␈αA␈αis␈αa␈αvalid,␈αsee␈αex␈α␈ercise␈α4.
␈βαa␈↓ α␈εαA␈ε∃␈αMI␈α␈X␈εα␈αprogram␈αfor␈αthis␈αaddition␈αprocess␈αmigh␈α␈t␈αtak␈α␈e␈αthe␈αfollo␈α␈wing␈αform:
␈ββ'␈↓ ↓H␈ε∩Program␈α
A␈εα␈α
(␈ε∂Addition␈αof␈α
nonnegativ␈α␈e␈αin␈α␈tegers␈↓ πε␈εα)␈ε∩.␈εα␈α∃Let␈↓ πr␈ε∃LO␈α␈C␈↓ λ0␈εα(␈↓ λ<␈ελu␈↓ λ↑␈εα)␈ε⊗␈α
⊃␈ε∃␈α
U␈εα␈α¬+␈↓ 	f␈ελj␈↓ 	w␈εα,␈↓ 
␈ε∃LOC␈↓ 
I␈εα(␈↓ 
U␈ελv␈↓ 
r␈εα)␈ε⊗␈α
⊃
␈ββ4␈↓ λQ␈εj␈↓ 
e␈εj
␈ββR␈↓ ↓H␈ε∃V␈εα␈απ+␈↓ α⊂␈ελj␈↓ α!␈εα,␈↓ α7␈ε∃L␈α␈OC␈↓ αu␈εα(␈↓ β↓␈ελw␈↓ β&␈εα)␈ε⊗␈α
⊃␈ε∃␈α
W␈εα␈απ+␈↓ ∧2␈ελj␈↓ ∧C␈εα,␈↓ ∧Y␈εαrI␈↓ ∧s␈εα1␈ε⊗␈α
⊃␈↓ ¬=␈ελj␈↓ ¬M␈εα,␈↓ ¬c␈εαrA␈↓ ε∃␈ε⊗⊃␈↓ εC␈ελk␈↓ εU␈εα,␈αw␈α␈ord␈αsize␈↓ λε␈ε⊗⊃␈↓ λ4␈ελb␈↓ λB␈εα,␈ε∃␈αN␈ε⊗␈α
⊃␈↓ 	%␈ελn␈↓ 	;␈εα.
␈ββ←␈↓ β→␈εj
␈β∧$␈↓ βa␈ε∃ENT1␈↓ ∧↑␈ε∃N
␈β∧'␈↓ αL␈ε	01␈↓ ε'␈εβ1␈↓ π&␈ε⊂Al␈α↓.␈αInitialize.␈↓ 	∧␈ε	j␈↓ 	≥␈ε↔ ␈↓ 	G␈ε	n␈↓ 	[␈εβ.
␈β∧A␈↓ π&␈∧∧Aπ&α↓=
␈β∧K␈↓ βa␈ε∃JOV␈↓ ∧↑␈ε∃O␈α␈FLO
␈β∧N␈↓ αL␈ε	02␈↓ ε'␈εβ1␈↓ π&␈εβE␈α↓n␈α␈sure␈α
o␈α␈v␈α␈er␈α␈⎇o␈α␈w␈αis␈αo{.
␈β∧s␈↓ β∂␈ε∃1␈α␈H␈↓ βa␈ε∃ENTA␈↓ ∧↑␈ε∃0
␈β∧v␈↓ αL␈ε	03␈↓ ¬Z␈ε	N␈↓ ε␈εβ+␈αλ1␈ε↔␈απ␈␈↓ εj␈ε	K␈↓ π&␈ε	k␈↓ π@␈ε↔ ␈εβ␈α
0␈α␈.
␈β¬~␈↓ βa␈ε∃J1Z␈↓ ∧↑␈ε∃3␈α␈F
␈β¬≥␈↓ αL␈ε	04␈↓ ¬Z␈ε	N␈↓ ε␈εβ+␈αλ1␈ε↔␈απ␈␈↓ εj␈ε	K␈↓ π&␈εβTo␈αA3␈αif␈↓ λ-␈ε	j␈↓ λF␈εβ=␈α	0.
␈β¬B␈↓ β∂␈ε∃2␈α␈H␈↓ βa␈ε∃ADD␈↓ ∧↑␈ε∃U␈α␈,1
␈β¬E␈↓ αL␈ε	05␈↓ ε ␈ε	N␈↓ π&␈ε⊂A2.␈αA␈α↓d␈α␈d␈αd␈α␈i␈↓ λG␈ε⊂g␈↓ λX␈ε⊂its.
␈β¬←␈↓ π&␈∧¬←π&α↓!␈↓ λX␈∧¬←λXα-
␈β¬j␈↓ βa␈ε∃ADD␈↓ ∧↑␈ε∃V␈α␈,1
␈β¬m␈↓ αL␈ε	06␈↓ ε ␈ε	N
␈βε⊃␈↓ βa␈ε∃STA␈↓ ∧↑␈ε∃W␈α␈,1
␈βε∀␈↓ αL␈ε	07␈↓ ε ␈ε	N
␈βε9␈↓ βa␈ε∃DEC1␈↓ ∧↑␈ε∃1
␈βε<␈↓ αL␈ε	08␈↓ ε ␈ε	N␈↓ π&␈ε⊂A3.␈αL␈α↓o␈α␈o␈↓ λ≠␈ε⊂p␈↓ λ9␈ε⊂o␈α␈n␈↓ λg␈ε	j␈↓ λv␈ε⊂.
␈βεV␈↓ π&␈∧εVπ&αu␈↓ λ#␈∧εVλ#αE␈↓ λo␈∧εVλoα⊃
␈βε`␈↓ βa␈ε∃JNOV␈↓ ∧↑␈ε∃1␈α␈B
␈βεc␈↓ αL␈ε	09␈↓ ε ␈ε	N␈↓ π&␈εβI␈α↓f␈αn␈α␈o␈αo␈α␈v␈α}er⎇o␈α}w,␈αse␈α␈t␈↓ 	5␈ε	k␈↓ 	O␈ε↔ ␈εβ␈α
0␈α␈.
␈βπλ␈↓ βa␈ε∃ENTA␈↓ ∧↑␈ε∃1
␈βπ␈↓ αL␈ε	10␈↓ ε"␈ε	K␈↓ π&␈εβOtherwise,␈αset␈↓ 	↓␈ε	k␈↓ 	~␈ε↔ ␈εβ␈α
1.
␈βπ0␈↓ βa␈ε∃J1P␈↓ ∧↑␈ε∃2␈α␈B
␈βπ3␈↓ αL␈ε	11␈↓ ε"␈ε	K␈↓ π&␈εβTo␈αA2␈αif␈↓ λ-␈ε	j␈↓ λF␈ε↔≤␈εβ␈α	0.
␈βπW␈↓ β∂␈ε∃3␈α␈H␈↓ βa␈ε∃STA␈↓ ∧↑␈ε∃W
␈βπZ␈↓ αL␈ε	12␈↓ ε'␈εβ1␈↓ π&␈εβStor␈α␈e␈α|n␈α␈al␈αcarry␈α
i␈α↓n␈↓ 	E␈ε	w␈↓ 	h␈εβ.
␈βπ\␈↓ 
⊗␈∧π\
⊗≠∂
␈βπe␈↓ 	[␈εε0
␈βλ0␈↓ ↓H␈εαThe␈α	running␈α
time␈α
for␈α
this␈α	program␈α
is␈α
10␈↓ ε0␈ελN␈↓ εV␈εα+␈α¬6␈α
cy␈α␈cles,␈α
independen␈α␈t␈α
of␈α
the␈α	n␈α␈um␈α␈ber
␈βλ[␈↓ ↓H␈εαof␈αcarries,␈↓ αn␈ελK␈↓ β␈εα.␈αThe␈αquan␈α␈tity␈↓ ∧⎇␈ελK␈↓ ¬'␈εαis␈αanalyzed␈αin␈αdetail␈αat␈αthe␈αclose␈αof␈αthis␈αsection.
␈β	π␈↓ α␈εαMan␈α␈y␈α
modi|cations␈αof␈α
Algorithm␈αA␈α
are␈α
possible,␈αand␈α
only␈αa␈α
few␈αof␈α
these␈α
are
␈β	2␈↓ ↓H␈εαmen␈α␈tioned␈αin␈αthe␈αex␈α␈ercises␈αbelo␈α␈w.␈αA␈αchapter␈αon␈αgeneralizations␈αof␈αthis␈αalgorithm
␈β	]␈↓ ↓H␈εαmigh␈α␈t␈αbe␈αen␈α␈titled␈α\Ho␈α␈w␈αto␈αdesign␈αaddition␈αcircuits␈αfor␈αa␈αdigital␈αcomputer."
␈β
	␈↓ α␈εαThe␈α∂problem␈α⊂of␈α∂subtraction␈α∂is␈α∂similar␈α∂to␈α⊂addition,␈α⊂but␈α∂the␈α∂di{erences␈α∂are
␈β
4␈↓ ↓H␈εαw␈α␈orth␈αnoting:
␈β
z␈↓ ↓H␈ε∩Algorithm␈α
S␈εα␈α
(␈ε∂Subtraction␈α
of␈α
nonnegativ␈α␈e␈α
in␈α␈tegers␈↓ πU␈εα)␈ε∩.␈εα␈α≤Giv␈α␈en␈α
nonnegativ␈α␈e␈↓ 
;␈ελn␈↓ 
P␈εα-place
␈β%␈↓ ↓H␈εαin␈α␈tegers␈α⊃(␈↓ α↑␈ελu␈↓ β↓␈ελu␈↓ β*␈εα.␈αε.␈αε.␈↓ βZ␈ελu␈↓ ∧␈εα)␈↓ ∧+␈ε⊗∃␈εα␈α∪(␈↓ ∧n␈ελv␈↓ ¬␈ελv␈↓ ¬0␈εα.␈αε.␈αε.␈↓ ¬`␈ελv␈↓ εα␈εα)␈↓ ε~␈εα,␈α∩this␈α∩algorithm␈α⊃forms␈α⊃their␈α⊃nonnegativ␈α␈e
␈β3␈↓ αr␈ε¬1␈↓ β∃␈ε¬2␈↓ βn␈εn␈↓ ∧␈εb␈↓ ∧}␈ε¬1␈↓ ¬≤␈ε¬2␈↓ ¬p␈εn␈↓ ε∞␈εb
␈βQ␈↓ ↓H␈εαdi{erence,␈α(␈↓ β␈ελw␈↓ β&␈ελw␈↓ βR␈εα.␈αε.␈αε.␈↓ ∧α␈ελw␈↓ ∧,␈εα)␈↓ ∧D␈εα.
␈β↑␈↓ β↔␈ε¬1␈↓ β>␈ε¬2␈↓ ∧~␈εn␈↓ ∧8␈εb
␈β	␈↓ ↓P␈ε∩S1.␈↓ α␈εα[Initialize.]␈α→Set␈↓ ∧	␈ελj␈↓ ∧$␈ε⊗ ␈↓ ∧R␈ελn␈↓ ∧g␈εα,␈↓ ∧⎇␈ελk␈↓ ¬→␈ε⊗ ␈εα␈α
0.
␈βB␈↓ ↓P␈ε∩S2.␈↓ α␈εα[Subtract␈αλdigits.]␈α⊃Set␈↓ ∧[␈ελw␈↓ ¬
␈ε⊗ ␈εα␈α
(␈↓ ¬D␈ελu␈↓ ¬i␈ε⊗␈␈↓ ε⊂␈ελv␈↓ ε0␈εα+␈↓ εW␈ελk␈↓ εi␈εα)␈↓ ε{␈εαmod␈↓ πE␈ελb␈↓ πS␈εα,␈α	and␈↓ λ)␈ελk␈↓ λD␈ε⊗ ␈α
b␈εα(␈↓ 	␈ελu␈↓ 	1␈ε⊗␈␈↓ 	X␈ελv␈↓ 	x␈εα+␈↓ 
 ␈ελk␈↓ 
1␈εα)/␈↓ 
O␈ελb␈↓ 
↑␈ε⊗c␈εα.␈α
(In
␈βP␈↓ ∧s␈εj␈↓ ¬Y␈εj␈↓ ε ␈εj␈↓ 	!␈εj␈↓ 	h␈εj
␈βm␈↓ α␈εαother␈α
w␈α␈ords,␈↓ βX␈ελk␈↓ βt␈εαis␈α
set␈α
to␈ε⊗␈α
␈␈εα1␈α
or␈α
0,␈αdepending␈α
on␈α
whether␈α
a␈α
\borro␈α␈w"␈α
occurs␈α
or
␈β
→␈↓ α␈εαnot,␈αi.e.,␈αwhether␈↓ ∧!␈ελu␈↓ ∧I␈ε⊗␈␈↓ ∧t␈ελv␈↓ ¬↔␈εα+␈↓ ¬A␈ελk␈↓ ¬]␈εα<␈α
0␈αor␈αnot.␈αIn␈αthe␈αcalculation␈αof␈↓ 	b␈ελw␈↓ 
π␈εα,␈αnote␈α
that
␈β
&␈↓ ∧6␈εj␈↓ ¬β␈εj␈↓ 	y␈εj
␈β
D␈↓ α␈εαw␈α␈e␈α	m␈α␈ust␈αλhav␈α␈e␈ε⊗␈α	␈␈↓ ∧	␈ελb␈↓ ∧!␈εα=␈α
0␈ε⊗␈α∧␈␈εα␈αβ(␈↓ ¬_␈ελb␈↓ ¬*␈ε⊗␈␈εα␈αβ1)␈α∧+␈αβ(␈ε⊗␈␈εα1)␈ε⊗␈α
∀␈↓ π ␈ελu␈↓ πF␈ε⊗␈␈↓ πm␈ελv␈↓ λ∞␈εα+␈↓ λ5␈ελk␈↓ λQ␈ε⊗∀␈εα␈α
(␈↓ 	␈ελb␈↓ 	≥␈ε⊗␈␈εα␈αβ1)␈ε⊗␈α∧␈␈εα␈αβ0␈α∧+␈αβ0␈α
<␈↓ ∀␈ελb␈↓ "␈εα;
␈β
Q␈↓ π5␈εj␈↓ π⎇␈εj
␈β
o␈↓ α␈εαhence␈α0␈ε⊗␈α
∀␈↓ β9␈ελu␈↓ βb␈ε⊗␈␈↓ ∧
␈ελv␈↓ ∧1␈εα+␈↓ ∧\␈ελk␈↓ ∧t␈εα+␈↓ ¬∨␈ελb␈↓ ¬8␈εα<␈α
2␈↓ ¬x␈ελb␈↓ εε␈εα,␈αand␈αthis␈αsuggests␈αthe␈αmethod␈αof␈αcomputer
␈β
|␈↓ βN␈εj␈↓ ∧≥␈εj
␈β∞~␈↓ α␈εαimplemen␈α␈tation␈αexplained␈αbelo␈α␈w.)
␈β∞S␈↓ ↓P␈ε∩S3.␈↓ α␈εα[Loop␈α
on␈↓ β!␈ελj␈↓ β1␈εα.]␈α∃Decrease␈↓ ∧n␈ελj␈↓ ¬	␈εαby␈α
one.␈αNo␈α␈w␈αif␈↓ εx␈ελj␈↓ π∩␈εα>␈α
0,␈αgo␈α
back␈α
to␈α
step␈αS2;␈α
otherwise
␈β∞}␈↓ α␈εαterminate␈α
the␈α∞algorithm.␈α∂(When␈α∞the␈α
algorithm␈α
terminates,␈α∞w␈α␈e␈α
should␈α
hav␈α␈e
␈β∂)␈↓ α␈ελk␈↓ α)␈εα=␈α0;␈α
the␈α
condition␈↓ ∧`␈ελk␈↓ ∧⎇␈εα=␈ε⊗␈α␈␈εα1␈α
will␈α
occur␈α
if␈α
and␈α
only␈αif␈↓ λr␈ελv␈↓ 	⊗␈εα.␈αε.␈αε.␈↓ 	F␈ελv␈↓ 	t␈εα>␈↓ 
#␈ελu␈↓ 
L␈εα.␈αε.␈αε.␈↓ 
|␈ελu␈↓ "␈εα,
␈β∂7␈↓ 	α␈ε¬1␈↓ 	V␈εn␈↓ 
8␈ε¬1␈↓ ⊃␈εn
␈β∂U␈↓ α␈εαand␈αthis␈αis␈αcon␈α␈trary␈αto␈αthe␈αgiv␈α␈en␈αassumptions.␈αSee␈αex␈α␈ercise␈α12.)
␈β∂Z␈↓ 
∪␈∧∂Z
∪≠∂
␈β⊂~␈↓ α␈εαIn␈αa␈ε∃␈αMIX␈εα␈αprogram␈αto␈αimplemen␈α␈t␈αsubtraction,␈αit␈αis␈αmost␈αcon␈α␈v␈α␈enien␈α␈t␈αto␈αretain
␈β⊂F␈↓ ↓H␈εαthe␈αvalue␈α1␈αλ+␈↓ β+␈ελk␈↓ βH␈εαinstead␈αof␈↓ ∧n␈ελk␈↓ ¬␈εαthroughout␈αthe␈αalgorithm,␈αso␈αthat␈αw␈α␈e␈αcan␈αcalculate
␈β⊂q␈↓ ↓H␈ελu␈↓ ↓r␈ε⊗␈␈↓ α≡␈ελv␈↓ αD␈εα+␈αλ(1␈α	+␈↓ βC␈ελk␈↓ βU␈εα)␈αλ+␈α	(␈↓ ∧"␈ελb␈↓ ∧9␈ε⊗␈␈εα␈αλ1)␈α
in␈α
step␈αS2.␈α∞(Recall␈α
that␈↓ λ∞␈ελb␈↓ λ)␈εαis␈αthe␈α
w␈α␈ord␈α
size.)␈α∞This␈αis
␈β⊂}␈↓ ↓\␈εj␈↓ α.␈εj
␈β⊃≤␈↓ ↓H␈εαillustrated␈αin␈αthe␈αfollo␈α␈wing␈αcode:
␈β∪(

␈β↓Y␈↓ ↓H␈εα250␈↓ α=␈ε∞A␈α␈RITH␈α␈METIC␈εα␈↓ 
b4.3.1
␈βα&␈↓ ↓H␈ε∩Program␈αS␈εα␈α(␈ε∂Subtraction␈αof␈αnonnegativ␈α␈e␈αin␈α␈tegers␈↓ π4␈εα)␈ε∩.␈εα␈α_This␈αprogram␈αis␈αanalogous␈αto
␈βαQ␈↓ ↓H␈εαProgram␈α∞A␈↓ αv␈εα;␈α∞w␈α␈e␈α∞hav␈α␈e␈↓ ∧≤␈εαrI␈↓ ∧6␈εα1␈ε⊗␈α∞⊃␈↓ ¬π␈ελj␈↓ ¬↔␈εα,␈↓ ¬0␈εαrA␈↓ ¬e␈ε⊗⊃␈εα␈α
1␈α	+␈↓ ε←␈ελk␈↓ εp␈εα.␈α∩Here,␈α∂as␈α∞in␈α∞other␈α∞programs␈α
of␈α∞this
␈βα⎇␈↓ ↓H␈εαsection,␈αlocation␈↓ βP␈ε∃W␈α␈M1␈↓ ∧_␈εαcon␈α␈tains␈αthe␈αconstan␈α␈t␈↓ εq␈ελb␈↓ πε␈ε⊗␈␈εα␈αε1,␈αthe␈αlargest␈αpossible␈αvalue␈α
that
␈ββ(␈↓ ↓H␈εαcan␈αbe␈αstored␈αin␈αa␈ε∃␈αM␈α␈IX␈εα␈αw␈α␈ord;␈αcf.␈αProgram␈α4.2.3D␈↓ πE␈εα,␈αlines␈α38↑39.
␈ββu␈↓ ∧↓␈ε∃EN␈α␈T1␈↓ ∧⎇␈ε∃N
␈ββx␈↓ αl␈ε	0␈α␈1␈↓ ε&␈εβ1␈↓ π¬␈ε⊂S1␈α␈.␈αIn␈α␈i␈α↓tia␈α␈l␈α↓ize.␈↓ λe␈ε	j␈↓ λ⎇␈ε↔ ␈↓ 	(␈ε	n␈↓ 	<␈εβ.
␈β∧∩␈↓ π¬␈∧∧∩π¬α↓?
␈β∧≤␈↓ ∧↓␈ε∃JO␈α␈V␈↓ ∧⎇␈ε∃OFL␈α␈O
␈β∧∨␈↓ αl␈ε	0␈α␈2␈↓ ε&␈εβ1␈↓ π¬␈εβEnsu␈α␈re␈αo␈α␈v␈α␈e␈α␈r⎇o␈α␈w␈αis␈αo{.
␈β∧D␈↓ β.␈ε∃1H␈↓ ∧↓␈ε∃J1␈α␈Z␈↓ ∧⎇␈ε∃DON␈α␈E
␈β∧G␈↓ αl␈ε	0␈α␈3␈↓ ε↓␈ε	K␈↓ ε#␈εβ+␈αλ1␈↓ π¬␈εβTermina␈α␈te␈αif␈↓ λG␈ε	j␈↓ λ`␈εβ=␈α	0.
␈β∧l␈↓ ∧↓␈ε∃EN␈α␈TA␈↓ ∧⎇␈ε∃1
␈β∧o␈↓ αl␈ε	0␈α␈4␈↓ ε!␈ε	K␈↓ π¬␈εβSet␈↓ π?␈ε	k␈↓ πX␈ε↔ ␈εβ␈α
0␈α␈.
␈β¬∪␈↓ β.␈ε∃2H␈↓ ∧↓␈ε∃AD␈α␈D␈↓ ∧⎇␈ε∃U,1
␈β¬⊗␈↓ αl␈ε	0␈α␈5␈↓ ε∨␈ε	N␈↓ π¬␈ε⊂S2␈α␈.␈αS␈α␈ub␈α␈tract␈αd␈α␈i␈↓ λa␈ε⊂g␈↓ λr␈ε⊂its.
␈β¬0␈↓ π¬␈∧¬0π¬α↓]␈↓ λr␈∧¬0λrα-
␈β¬;␈↓ ∧↓␈ε∃SU␈α␈B␈↓ ∧⎇␈ε∃V,1
␈β¬>␈↓ αl␈ε	0␈α␈6␈↓ ε∨␈ε	N␈↓ π¬␈εβComp␈α␈ut␈α␈e␈↓ λ↔␈ε	u␈↓ λ>␈ε↔␈␈↓ λg␈ε	v␈↓ 		␈εβ+␈↓ 	2␈ε	k␈↓ 	I␈εβ+␈↓ 	r␈ε	b␈↓ 	␈␈εβ.
␈β¬H␈↓ λ+␈εj␈↓ λu␈εj
␈β¬b␈↓ ∧↓␈ε∃AD␈α␈D␈↓ ∧⎇␈ε∃WM1
␈β¬e␈↓ αl␈ε	0␈α␈7␈↓ ε∨␈ε	N
␈βε
␈↓ ∧↓␈ε∃ST␈α␈A␈↓ ∧⎇␈ε∃W,1
␈βε
␈↓ αl␈ε	0␈α␈8␈↓ ε∨␈ε	N␈↓ π¬␈εβ(May␈α
be␈αm␈α␈i␈α↓n␈α}us␈αze␈α␈ro)
␈βε2␈↓ ∧↓␈ε∃DE␈α␈C1␈↓ ∧⎇␈ε∃1
␈βε5␈↓ αl␈ε	0␈α␈9␈↓ ε∨␈ε	N␈↓ π¬␈ε⊂S3␈α␈.␈αLoo␈↓ πt␈ε⊂p␈↓ λ∩␈ε⊂o␈α␈n␈↓ λ@␈ε	j␈↓ λO␈ε⊂.
␈βεO␈↓ π¬␈∧εOπ¬αo␈↓ π|␈∧εOπ|αE␈↓ λH␈∧εOλHα⊃
␈βεY␈↓ ∧↓␈ε∃JO␈α␈V␈↓ ∧⎇␈ε∃1B
␈βε\␈↓ αl␈ε	1␈α␈0␈↓ ε∨␈ε	N␈↓ π¬␈εβIf␈αo␈α}v␈α␈er⎇␈α␈o␈α␈w,␈αset␈↓ λf␈ε	k␈↓ 	␈ε↔ ␈εβ␈α	0.
␈βπ↓␈↓ ∧↓␈ε∃EN␈α␈TA␈↓ ∧⎇␈ε∃0
␈βπ∧␈↓ αl␈ε	1␈α␈1␈↓ ¬y␈ε	N␈↓ ε ␈ε↔␈␈↓ εH␈ε	K␈↓ π¬␈εβOthe␈α␈rwi␈α↓se␈α␈,␈αse␈α␈t␈↓ λ`␈ε	k␈↓ λy␈ε↔ ␈α
␈␈εβ1.
␈βπ(␈↓ ∧↓␈ε∃J1␈α␈P␈↓ ∧⎇␈ε∃2B
␈βπ+␈↓ αl␈ε	1␈α␈2␈↓ ¬y␈ε	N␈↓ ε ␈ε↔␈␈↓ εH␈ε	K␈↓ π¬␈εβBack␈α
to␈αS2␈α␈.
␈βπP␈↓ ∧↓␈ε∃HL␈α␈T␈↓ ∧⎇␈ε∃5
␈βπS␈↓ αl␈ε	1␈α␈3␈↓ π¬␈εβ(E␈α↓r␈α␈ror,␈↓ πr␈ε	v␈↓ λ
␈εβ>␈↓ λ8␈ε	u␈↓ λL␈εβ)
␈βπU␈↓ λ|␈∧πUλ|≠∂
␈βλ'␈↓ ↓H␈εαThe␈α
running␈α∞time␈α∞for␈α
this␈α∞program␈α∞is␈α∞12␈↓ εL␈ελN␈↓ εv␈εα+␈α	3␈α∞cy␈α␈cles,␈α∞sligh␈α␈tly␈α∞longer␈α∞than␈α
the
␈βλR␈↓ ↓H␈εαcorresponding␈αamoun␈α␈t␈αfor␈αProgram␈αA.
␈βλ}␈↓ α␈εαThe␈αreader␈α
may␈αw␈α␈onder␈αif␈αit␈αw␈α␈ould␈α
not␈αbe␈αw␈α␈orth␈αwhile␈α
to␈αhav␈α␈e␈αa␈αcom␈α␈bined
␈β	)␈↓ ↓H␈εαaddition-subtraction␈α⊂routine␈α∂in␈α⊂place␈α⊂of␈α⊂the␈α⊂t␈α␈w␈α␈o␈α⊂algorithms␈α⊂A␈α⊂and␈α⊂S␈↓ 
≠␈εα.␈α_But␈α∂an
␈β	T␈↓ ↓H␈εαexamination␈αλof␈αλthe␈αλcomputer␈αλprograms␈αλsho␈α␈ws␈αλthat␈α	it␈αλis␈αλgenerally␈αλbetter␈αλto␈αλuse␈αλt␈α␈w␈α␈o
␈β	␈␈↓ ↓H␈εαdi{eren␈α␈t␈αroutines,␈αso␈αthat␈αthe␈αinner␈αloops␈αof␈αthe␈αcomputations␈αcan␈αbe␈αperformed
␈β
*␈↓ ↓H␈εαas␈αrapidly␈αas␈αpossible,␈αsince␈αthe␈αprograms␈αare␈αso␈αshort.
␈β
a␈↓ α␈εαOur␈α⊂next␈α⊃problem␈α⊂is␈α⊂m␈α␈ultiplication,␈α⊃and␈α⊃here␈α⊂w␈α␈e␈α⊂carry␈α⊃the␈α⊂ideas␈α⊂used␈α⊂in
␈β␈↓ ↓H␈εαAlgorithm␈αA␈αa␈αlittle␈αfurther:
␈βO␈↓ ↓H␈ε∩Algorithm␈α∂M␈εα␈α⊂(␈ε∂Multiplication␈α∂of␈α⊂nonnegativ␈α␈e␈α∂in␈α␈tegers␈↓ λ∀␈εα)␈ε∩.␈εα␈α∨Giv␈α␈en␈α⊂nonnegativ␈α␈e␈α∂in-
␈βz␈↓ ↓H␈εαtegers␈α(␈↓ α;␈ελu␈↓ α↑␈ελu␈↓ βπ␈εα.␈αε.␈αε.␈↓ β7␈ελu␈↓ β]␈εα)␈↓ ∧␈εαand␈α(␈↓ ∧Q␈ελv␈↓ ∧p␈ελv␈↓ ¬∀␈εα.␈αε.␈αε.␈↓ ¬D␈ελv␈↓ ¬m␈εα)␈↓ ε¬␈εα,␈αthis␈αalgorithm␈αforms␈αtheir␈αradix-␈↓ 
→␈ελb␈↓ 
2␈εαproduct
␈βπ␈↓ αO␈ε¬1␈↓ αr␈ε¬2␈↓ βK␈εn␈↓ βi␈εb␈↓ ∧a␈ε¬1␈↓ ∧␈␈ε¬2␈↓ ¬S␈εm␈↓ ¬y␈εb
␈β%␈↓ ↓H␈εα(␈↓ ↓T␈ελw␈↓ ↓z␈ελw␈↓ α&␈εα.␈αε.␈αε.␈↓ αV␈ελw␈↓ β6␈εα)␈↓ βN␈εα.␈α(The␈αcon␈α␈v␈α␈en␈α␈tional␈αpencil-and-paper␈αmethod␈αis␈αbased␈αon␈αform-
␈β2␈↓ ↓k␈ε¬1␈↓ α∩␈ε¬2␈↓ αn␈εm␈↓ βλ␈ε¬+␈↓ β%␈εn␈↓ βB␈εb
␈βP␈↓ ↓H␈εαing␈αthe␈αpartial␈αproducts␈α(␈↓ ∧R␈ελu␈↓ ∧u␈ελu␈↓ ¬≡␈εα.␈αε.␈αε.␈↓ ¬N␈ελu␈↓ ¬u␈εα)␈ε⊗␈αεα␈↓ ε2␈ελv␈↓ εZ␈εα|rst,␈αfor␈α1␈ε⊗␈α
∀␈↓ λ/␈ελj␈↓ λI␈ε⊗∀␈↓ λw␈ελm␈↓ 	↔␈εα,␈αand␈αthen␈αadding
␈β↑␈↓ ∧g␈ε¬1␈↓ ¬
␈ε¬2␈↓ ¬c␈εn␈↓ εB␈εj
␈β{␈↓ ↓H␈εαthese␈α
products␈α∞together␈α∞with␈α∞appropriate␈α∞scale␈α∞factors;␈α∞but␈α∞in␈α∞a␈α∞computer␈α∞it␈α
is
␈β
'␈↓ ↓H␈εαbest␈α
to␈αdo␈α
the␈αaddition␈α
concurren␈α␈tly␈αwith␈α
the␈αm␈α␈ultiplication,␈αas␈α
described␈αin␈α
this
␈β
R␈↓ ↓H␈εαalgorithm.)
␈β∞	␈↓ ↓D␈ε∩M1.␈↓ α␈εα[Initialize.]␈α~Set␈↓ ∧
␈ελw␈↓ ∧g␈εα,␈↓ ∧⎇␈ελw␈↓ ¬Z␈εα,␈↓ ¬p␈εα.␈αε.␈αε.␈↓ ε ␈εα,␈↓ ε6␈ελw␈↓ π#␈εαall␈αto␈αzero.␈α
Set␈↓ 	⊗␈ελj␈↓ 	1␈ε⊗ ␈↓ 	←␈ελm␈↓ 	␈␈εα.␈α(If␈↓ 
F␈ελw␈↓ "␈εα,
␈β∞⊗␈↓ ∧"␈εm␈↓ ∧;␈ε¬+1␈↓ ¬∃␈εm␈↓ ¬/␈ε¬+␈α␈2␈↓ εN␈εm␈↓ εh␈ε¬+␈↓ π¬␈εn␈↓ 
]␈εm␈↓ 
w␈ε¬+1
␈β∞4␈↓ α␈εα.␈αε.␈αε.␈↓ α<␈εα,␈↓ αS␈ελw␈↓ β?␈εαw␈α␈ere␈α
not␈αcleared␈α
to␈αzero␈α
in␈αthis␈α
step,␈αit␈α
turns␈αout␈α
that␈αthe␈αsteps
␈β∞A␈↓ αj␈εm␈↓ β∧␈ε¬+␈↓ β!␈εn
␈β∞←␈↓ α␈εαbelo␈α␈w␈αw␈α␈ould␈αset
␈β∂6␈↓ αi␈εα(␈↓ αu␈ελw␈↓ β!␈εα.␈αε.␈αε.␈↓ βQ␈ελw␈↓ ∧1␈εα)␈↓ ∧S␈ε⊗ ␈εα␈α
(␈↓ ¬
␈ελu␈↓ ¬6␈εα.␈αε.␈αε.␈↓ ¬f␈ελu␈↓ ε
␈εα)␈↓ ε-␈ε⊗α␈εα␈αλ(␈↓ εe␈ελv␈↓ π	␈εα.␈αε.␈αε.␈↓ π9␈ελv␈↓ πc␈εα)␈↓ λβ␈εα+␈αλ(␈↓ λ;␈ελw␈↓ 	≥␈εα.␈αε.␈αε.␈↓ 	M␈ελw␈↓ 
.␈εα)␈↓ 
F␈εα.
␈β∂C␈↓ β␈ε¬1␈↓ βi␈εm␈↓ ∧α␈ε¬+␈↓ ∧∨␈εn␈↓ ∧=␈εb␈↓ ¬"␈ε¬1␈↓ ¬{␈εn␈↓ ε→␈εb␈↓ εt␈ε¬1␈↓ πI␈εm␈↓ πo␈εb␈↓ λR␈εm␈↓ λl␈ε¬+1␈↓ 	e␈εm␈↓ 	␈␈ε¬+␈↓ 
≤␈εn␈↓ 
:␈εb
␈β⊂
␈↓ α␈εαThis␈αmore␈αgeneral␈αoperation␈αis␈αsometimes␈αuseful.)
␈β⊂D␈↓ ↓D␈ε∩M2.␈↓ α␈εα[Zero␈α
m␈α␈ultiplier?]␈α∪If␈↓ ∧L␈ελv␈↓ ∧s␈εα=␈α
0,␈α
set␈↓ ¬|␈ελw␈↓ ε+␈ε⊗ ␈εα␈α
0␈α
and␈α
go␈α	to␈α
step␈α	M6.␈α(This␈α	test␈α
sav␈α␈es␈α	a
␈β⊂Q␈↓ ∧[␈εj␈↓ ε∀␈εj
␈β⊂o␈↓ α␈εαgood␈α	deal␈α	of␈α	time␈α
if␈α	there␈α	is␈α	a␈α	reasonable␈α	chance␈α	that␈↓ λ>␈ελv␈↓ λe␈εαis␈α	zero,␈α	but␈α	otherwise
␈β⊂|␈↓ λN␈εj
␈β⊃~␈↓ α␈εαit␈αmay␈αbe␈αomitted␈αwithout␈αa{ecting␈αthe␈αvalidity␈αof␈αthe␈αalgorithm.)
␈β∪(

␈β↓Y␈↓ ↓H␈εα4.3.1␈ε∞␈↓ π⊗TH␈α␈E␈α	CLASSICA␈α␈L␈α	AL␈α␈GORITH␈α␈MS␈↓ 
v␈εα251
␈βα≥␈↓ ¬{␈ε≥Ta␈α␈b␈α↓le␈α
1
␈βαQ␈↓ ∧2␈εβMUL␈α⎇T␈α↓IPLICA␈α⎇T␈α↓ION␈αO␈α␈F␈α9␈α␈14␈αBY␈α84␈α␈.
␈βα⎇␈↓ β7␈∧α⎇β7(α␈↓ εw␈∧α⎇εw(α
␈ββ∧␈↓ α@␈εβS␈α␈tep␈↓ βp␈ε	i␈↓ ∧6␈ε	j␈↓ ∧{␈ε	u␈↓ ¬O␈ε	v␈↓ ε+␈ε	t␈↓ π/␈ε	w␈↓ λπ␈ε	w␈↓ λ`␈ε	w␈↓ 	9␈ε	w␈↓ 
⊃␈ε	w
␈ββ∞␈↓ ¬∂␈εi␈↓ ¬↑␈εj␈↓ πE␈εε1␈↓ λ≥␈εε2␈↓ λv␈εε3␈↓ 	O␈εε4␈↓ 
(␈εε5
␈ββ$␈↓ β7␈∧β$β7λα␈↓ εw␈∧β$εwλα
␈ββ+␈↓ β7␈∧β+β7(α␈↓ εw␈∧β+εw(α
␈ββ2␈↓ αI␈εβM5␈↓ βn␈εβ3␈↓ ∧5␈εβ2␈↓ ¬α␈εβ4␈↓ ¬T␈εβ4␈↓ ε ␈εβ16␈↓ π7␈ε	x␈↓ λ⊂␈ε	x␈↓ λi␈εβ0␈↓ 	B␈εβ0␈↓ 
~␈εβ6
␈ββS␈↓ β7␈∧βSβ7(α␈↓ εw␈∧βSεw(α
␈ββZ␈↓ αI␈εβM5␈↓ βn␈εβ2␈↓ ∧5␈εβ2␈↓ ¬α␈εβ1␈↓ ¬T␈εβ4␈↓ ε ␈εβ05␈↓ π7␈ε	x␈↓ λ⊂␈ε	x␈↓ λi␈εβ0␈↓ 	B␈εβ5␈↓ 
~␈εβ6
␈ββ{␈↓ β7␈∧β{β7(α␈↓ εw␈∧β{εw(α
␈β∧α␈↓ αI␈εβM5␈↓ βn␈εβ1␈↓ ∧5␈εβ2␈↓ ¬α␈εβ9␈↓ ¬T␈εβ4␈↓ ε ␈εβ36␈↓ π7␈ε	x␈↓ λ⊂␈ε	x␈↓ λi␈εβ6␈↓ 	B␈εβ5␈↓ 
~␈εβ6
␈β∧"␈↓ β7␈∧∧"β7(α␈↓ εw␈∧∧"εw(α
␈β∧)␈↓ αI␈εβM6␈↓ βn␈εβ0␈↓ ∧5␈εβ2␈↓ ¬α␈ε	x␈↓ ¬T␈εβ4␈↓ ε ␈εβ36␈↓ π7␈ε	x␈↓ λ⊂␈εβ3␈↓ λi␈εβ6␈↓ 	B␈εβ5␈↓ 
~␈εβ6
␈β∧J␈↓ β7␈∧∧Jβ7(α␈↓ εw␈∧∧Jεw(α
␈β∧Q␈↓ αI␈εβM5␈↓ βn␈εβ3␈↓ ∧5␈εβ1␈↓ ¬α␈εβ4␈↓ ¬T␈εβ8␈↓ ε ␈εβ37␈↓ π7␈ε	x␈↓ λ⊂␈εβ3␈↓ λi␈εβ6␈↓ 	B␈εβ7␈↓ 
~␈εβ6
␈β∧q␈↓ β7␈∧∧qβ7(α␈↓ εw␈∧∧qεw(α
␈β∧x␈↓ αI␈εβM5␈↓ βn␈εβ2␈↓ ∧5␈εβ1␈↓ ¬α␈εβ1␈↓ ¬T␈εβ8␈↓ ε ␈εβ17␈↓ π7␈ε	x␈↓ λ⊂␈εβ3␈↓ λi␈εβ7␈↓ 	B␈εβ7␈↓ 
~␈εβ6
␈β¬→␈↓ β7␈∧¬→β7(α␈↓ εw␈∧¬→εw(α
␈β¬ ␈↓ αI␈εβM5␈↓ βn␈εβ1␈↓ ∧5␈εβ1␈↓ ¬α␈εβ9␈↓ ¬T␈εβ8␈↓ ε ␈εβ76␈↓ π7␈ε	x␈↓ λ⊂␈εβ6␈↓ λi␈εβ7␈↓ 	B␈εβ7␈↓ 
~␈εβ6
␈β¬A␈↓ β7␈∧¬Aβ7(α␈↓ εw␈∧¬Aεw(α
␈β¬H␈↓ αI␈εβM6␈↓ βn␈εβ0␈↓ ∧5␈εβ1␈↓ ¬α␈ε	x␈↓ ¬T␈εβ8␈↓ ε ␈εβ76␈↓ π8␈εβ7␈↓ λ⊂␈εβ6␈↓ λi␈εβ7␈↓ 	B␈εβ7␈↓ 
~␈εβ6
␈βε7␈↓ ↓D␈ε∩M3.␈↓ α␈εα[Initialize␈↓ β*␈ελi␈↓ β8␈εα.]␈α→Set␈↓ ∧#␈ελi␈↓ ∧;␈ε⊗ ␈↓ ∧i␈ελn␈↓ ∧␈␈εα,␈↓ ¬∃␈ελk␈↓ ¬1␈ε⊗ ␈εα␈α
0.
␈βεj␈↓ ↓D␈ε∩M4.␈↓ α␈εα[Multiply␈αand␈αadd.]␈α→Set␈↓ ¬∃␈ελt␈↓ ¬,␈ε⊗ ␈↓ ¬Z␈ελu␈↓ εα␈ε⊗α␈↓ ε.␈ελv␈↓ εS␈εα+␈↓ ε␈␈ελw␈↓ πT␈εα+␈↓ λ␈ελk␈↓ λ∩␈εα;␈αthen␈αset␈↓ 	2␈ελw␈↓ 
	␈ε⊗ ␈↓ 
7␈ελt␈↓ 
J␈εαmod␈↓ ∀␈ελb␈↓ "␈εα,
␈βεx␈↓ ¬o␈εi␈↓ ε>␈εj␈↓ π↔␈εi␈↓ π"␈ε¬+␈↓ π?␈εj␈↓ 	J␈εi␈↓ 	U␈ε¬+␈↓ 	r␈εj
␈βπ∃␈↓ α␈ελk␈↓ α*␈ε⊗ ␈αb␈↓ αh␈ελt␈↓ αu␈εα/␈↓ βπ␈ελb␈↓ β∃␈ε⊗c␈εα.␈α⊂(Here␈α∞the␈α
\carry"␈↓ ¬a␈ελk␈↓ ε␈εαwill␈α
always␈α∞be␈α
in␈α
the␈α∞range␈α
0␈ε⊗␈α∀␈↓ 

␈ελk␈↓ 
(␈εα<␈↓ 
X␈ελb␈↓ 
g␈εα;␈α
see
␈βπA␈↓ α␈εαbelo␈α␈w.)
␈βπt␈↓ ↓D␈ε∩M5.␈↓ α␈εα[Loop␈α
on␈↓ β ␈ελi␈↓ β.␈εα.]␈α∀Decrease␈↓ ∧j␈ελi␈↓ ¬α␈εαby␈α
one.␈αNo␈α␈w␈α
if␈↓ εp␈ελi␈↓ πλ␈εα>␈α
0,␈α
go␈α
back␈α
to␈α
step␈α
M4;␈α
otherwise
␈βλ∨␈↓ α␈εαset␈↓ αD␈ελw␈↓ αs␈ε⊗ ␈↓ β!␈ελk␈↓ β3␈εα.
␈βλ,␈↓ α\␈εj
␈βλR␈↓ ↓D␈ε∩M6.␈↓ α␈εα[Loop␈α	on␈↓ β∨␈ελj␈↓ β/␈εα.]␈α∪Decrease␈↓ ∧j␈ελj␈↓ ¬∧␈εαby␈α	one.␈αNo␈α␈w␈α
if␈↓ εp␈ελj␈↓ π
␈εα>␈α
0,␈α
go␈α
back␈α	to␈α
step␈α	M2;␈α
otherwise
␈βλ⎇␈↓ α␈εαthe␈αalgorithm␈αterminates.
␈β	α␈↓ ¬F␈∧	α¬F≠∂
␈β	8␈↓ α␈εαAlgorithm␈α∂M␈α∞is␈α∂illustrated␈α∞in␈α∂Table␈α∞1,␈α∂assuming␈α∂that␈↓ λm␈ελb␈↓ 	
␈εα=␈α∞10,␈α∂by␈α∞sho␈α␈wing
␈β	c␈↓ ↓H␈εαthe␈αstates␈αof␈α
the␈αcomputation␈α
at␈αthe␈αbeginning␈α
of␈αsteps␈α
M5␈αand␈αM6.␈α∞A␈αproof␈αof
␈β
∞␈↓ ↓H␈εαAlgorithm␈αM␈αappears␈αin␈αthe␈αansw␈α␈er␈αto␈αex␈α␈ercise␈α14.
␈β
:␈↓ α␈εαThe␈αt␈α␈w␈α␈o␈αinequalities
␈β
|␈↓ ε∧␈ε¬2
␈βα␈↓ ∧g␈εα0␈ε⊗␈α
∀␈↓ ¬1␈ελt␈↓ ¬H␈ε⊗∀␈↓ ¬v␈ελb␈↓ ε∪␈εα,␈↓ εk0␈ε⊗␈α
∀␈↓ π5␈ελk␈↓ πQ␈εα<␈↓ π␈␈ελb␈↓ α␈εα(1)
␈βK␈↓ ↓H␈εαare␈α
crucial␈α
for␈αan␈α
e}cien␈α␈t␈α
implemen␈α␈tation␈α
of␈αthis␈α
algorithm,␈αsince␈α
they␈α
poin␈α␈t␈α
out
␈βw␈↓ ↓H␈εαho␈α␈w␈α
large␈α
a␈α
register␈α
is␈α
needed␈α
for␈α∞the␈α
computations.␈α∂These␈α
inequalities␈α
may␈α
be
␈β"␈↓ ↓H␈εαpro␈α␈v␈α␈ed␈αby␈αinduction␈αas␈αthe␈αalgorithm␈αproceeds,␈αfor␈αif␈αw␈α␈e␈αhav␈α␈e␈↓ 	↔␈ελk␈↓ 	3␈εα<␈↓ 	a␈ελb␈↓ 	z␈εαat␈αthe␈αstart
␈βM␈↓ ↓H␈εαof␈αstep␈αM4,␈αw␈α␈e␈αhav␈α␈e
␈β
⊂␈↓ 	b␈ε¬2␈↓ 
⎇␈ε¬2
␈β
⊗␈↓ ↓←␈ελu␈↓ απ␈ε⊗α␈↓ α3␈ελv␈↓ αX␈εα+␈↓ β∧␈ελw␈↓ βY␈εα+␈↓ ∧¬␈ελk␈↓ ∧!␈ε⊗∀␈εα␈α
(␈↓ ∧[␈ελb␈↓ ∧q␈ε⊗␈␈εα␈αλ1)␈ε⊗␈αλα␈εα␈αλ(␈↓ ¬{␈ελb␈↓ ε⊃␈ε⊗␈␈εα␈αλ1)␈αλ+␈αλ(␈↓ π≠␈ελb␈↓ π2␈ε⊗␈␈εα␈αλ1)␈αλ+␈αλ(␈↓ λ<␈ελb␈↓ λR␈ε⊗␈␈εα␈αλ1)␈α
=␈↓ 	T␈ελb␈↓ 	y␈ε⊗␈␈εα␈αλ1␈α
<␈↓ 
o␈ελb␈↓ ␈εα.
␈β
#␈↓ ↓s␈εi␈↓ αB␈εj␈↓ β≠␈εi␈↓ β'␈ε¬+␈↓ βD␈εj
␈β
←␈↓ α␈εαThe␈αλfollo␈α␈wing␈ε∃␈αλMIX␈εα␈απprogram␈αλsho␈α␈ws␈αλthe␈αλconsiderations␈αλthat␈αλare␈αλnecessary␈αλwhen
␈β∞
␈↓ ↓H␈εαAlgorithm␈αM␈α
is␈αimplemen␈α␈ted␈αon␈αa␈αcomputer.␈αThe␈αcoding␈αfor␈αstep␈αM4␈αw␈α␈ould␈αbe␈α
a
␈β∞5␈↓ ↓H␈εαlittle␈αsimpler␈αif␈αour␈αcomputer␈αhad␈αa␈α\m␈α␈ultiply-and-add"␈αinstruction,␈αor␈αif␈αit␈αhad
␈β∞`␈↓ ↓H␈εαa␈αdouble-length␈αaccum␈α␈ulator␈αfor␈αaddition.
␈β∂≠␈↓ ↓H␈ε∩Program␈α
M.␈εα␈α
(␈ε∂Multiplication␈α
of␈α
nonnegativ␈α␈e␈α
in␈α␈tegers␈↓ πh␈εα)␈ε∩.␈εα␈α∀This␈α
program␈α
is␈α
analogous
␈β∂F␈↓ ↓H␈εαto␈αProgram␈αA␈↓ β ␈εα.␈↓ β6␈εαrI␈↓ βP␈εα1␈ε⊗␈α
⊃␈↓ ∧~␈ελi␈↓ ∧(␈εα,␈↓ ∧>␈εαrI␈↓ ∧X␈εα2␈ε⊗␈α
⊃␈↓ ¬"␈ελj␈↓ ¬2␈εα,␈↓ ¬H␈εαrI␈↓ ¬b␈εα3␈ε⊗␈α
⊃␈↓ ε,␈ελi␈↓ εB␈εα+␈↓ εn␈ελj␈↓ ε}␈εα,␈↓ π∀␈ε∃CON␈α␈TEN␈α␈TS(␈α␈CARR␈α␈Y)␈↓ 	U␈ε⊗⊃␈↓ 
β␈ελk␈↓ 
∀␈εα.
␈β∂}␈↓ αo␈ε∃EN␈α␈T1␈↓ βk␈ε∃N
␈β⊂↓␈↓ ↓Z␈ε	0␈α␈1␈↓ ¬C␈εβ1␈↓ ε<␈ε⊂M1.␈αInitialize.
␈β⊂≠␈↓ ε<␈∧⊂≠ε<α↓J
␈β⊂%␈↓ αo␈ε∃JO␈α␈V␈↓ βk␈ε∃OFL␈α␈O
␈β⊂(␈↓ ↓Z␈ε	0␈α␈2␈↓ ¬C␈εβ1␈↓ ε<␈εβE␈α↓n␈α␈sur␈α␈e␈αo␈α␈v␈α␈e␈α␈r⎇o␈α␈w␈αis␈αo{.
␈β⊂M␈↓ αo␈ε∃ST␈α␈Z␈↓ βk␈ε∃W+M␈α␈,1
␈β⊂P␈↓ ↓Z␈ε	0␈α␈3␈↓ ¬<␈ε	N␈↓ ε<␈ε	w␈↓ π↔␈ε↔ ␈εβ␈α	0.
␈β⊂Z␈↓ εR␈εm␈↓ εj␈εε+␈↓ πβ␈εi
␈β⊂t␈↓ αo␈ε∃DE␈α␈C1␈↓ βk␈ε∃1
␈β⊂w␈↓ ↓Z␈ε	0␈α␈4␈↓ ¬<␈ε	N
␈β⊃≤␈↓ αo␈ε∃J1␈α␈P␈↓ βk␈ε∃*-2
␈β⊃∨␈↓ ↓Z␈ε	0␈α␈5␈↓ ¬<␈ε	N␈↓ ε<␈εβRepe␈α␈at␈αfor␈↓ πb␈ε	n␈↓ π␈␈ε↔∃␈↓ λ*␈ε	i␈↓ λ@␈εβ>␈α	0.
␈β∪(

␈β↓Y␈↓ ↓H␈εα252␈↓ α=␈ε∞A␈α␈RITH␈α␈METIC␈εα␈↓ 
b4.3.1
␈βα(␈↓ αo␈ε∃EN␈α␈T2␈↓ βk␈ε∃M
␈βα+␈↓ ↓Z␈ε	0␈α␈6␈↓ ¬C␈εβ1␈↓ ε<␈ε	j␈↓ εU␈ε↔ ␈↓ ε␈␈ε	m␈↓ π≤␈εβ.
␈βαP␈↓ α≤␈ε∃1H␈↓ αo␈ε∃LD␈α␈X␈↓ βk␈ε∃V,2
␈βαS␈↓ ↓Z␈ε	0␈α␈7␈↓ ¬:␈ε	M␈↓ ε<␈ε⊂M2.␈αZero␈αm␈α␈u␈α␈lti␈↓ λ_␈ε⊂p␈↓ λ*␈ε⊂li␈α↓e␈α␈r?
␈βαm␈↓ ε<␈∧αmε<α↓\␈↓ λ∨␈∧αmλ∨αG
␈βαw␈↓ αo␈ε∃JX␈α␈Z␈↓ βk␈ε∃8F
␈βαz␈↓ ↓Z␈ε	0␈α␈8␈↓ ¬:␈ε	M␈↓ ε<␈εβIf␈↓ ε↑␈ε	v␈↓ πα␈εβ=␈α	0,␈αset␈↓ λ¬␈ε	w␈↓ λ0␈ε↔ ␈εβ␈α
0␈αa␈α␈nd␈α
go␈αto␈αM␈α␈6.
␈ββ¬␈↓ εl␈εj␈↓ λ≠␈εj
␈ββ∨␈↓ αo␈ε∃EN␈α␈T1␈↓ βk␈ε∃N
␈ββ"␈↓ ↓Z␈ε	0␈α␈9␈↓ ¬↔␈ε	M␈↓ ¬A␈ε↔␈␈↓ ¬i␈ε	Z␈↓ ε<␈ε⊂M3.␈αInitialize␈αi.
␈ββ<␈↓ ε<␈∧β<ε<α↓←
␈ββF␈↓ αo␈ε∃EN␈α␈T3␈↓ βk␈ε∃N,2
␈ββI␈↓ ↓Z␈ε	1␈α␈0␈↓ ¬↔␈ε	M␈↓ ¬A␈ε↔␈␈↓ ¬i␈ε	Z␈↓ ε<␈ε	i␈↓ εR␈ε↔ ␈↓ ε⎇␈ε	n␈↓ π⊃␈εβ,␈α(␈↓ π0␈ε	i␈↓ πE␈εβ+␈↓ πm␈ε	j␈↓ π|␈εβ)␈ε↔␈α
 ␈εβ␈α	(␈↓ λF␈ε	n␈↓ λb␈εβ+␈↓ 	
␈ε	j␈↓ 	→␈εβ).
␈ββn␈↓ αo␈ε∃EN␈α␈TX␈↓ βk␈ε∃0
␈ββq␈↓ ↓Z␈ε	1␈α␈1␈↓ ¬↔␈ε	M␈↓ ¬A␈ε↔␈␈↓ ¬i␈ε	Z␈↓ ε<␈ε	k␈↓ εV␈ε↔ ␈εβ␈α
0␈α␈.
␈β∧⊗␈↓ α≤␈ε∃2H␈↓ αo␈ε∃ST␈α␈X␈↓ βk␈ε∃CAR␈α␈RY
␈β∧→␈↓ ↓Z␈ε	1␈α␈2␈↓ ∧|␈εβ(␈↓ ¬π␈ε	M␈↓ ¬1␈ε↔␈␈↓ ¬Z␈ε	Z␈↓ ¬q␈εβ)␈↓ ¬|␈ε	N␈↓ ε<␈ε⊂M4.␈αMu␈α␈lti␈↓ πO␈ε⊂p␈↓ πa␈ε⊂l␈↓ πj␈ε⊂y␈↓ λλ␈ε⊂an␈α␈d␈αa␈α␈dd␈α␈.
␈β∧3␈↓ ε<␈∧∧3ε<α↓∪␈↓ πV␈∧∧3πVα_␈↓ πv␈∧∧3πvα↓∩
␈β∧=␈↓ αo␈ε∃LD␈α␈A␈↓ βk␈ε∃U,1
␈β∧@␈↓ ↓Z␈ε	1␈α␈3␈↓ ∧|␈εβ(␈↓ ¬π␈ε	M␈↓ ¬1␈ε↔␈␈↓ ¬Z␈ε	Z␈↓ ¬q␈εβ)␈↓ ¬|␈ε	N␈↓ ε<␈ε	u
␈β∧K␈↓ εP␈εi
␈β∧e␈↓ αo␈ε∃MU␈α␈L␈↓ βk␈ε∃V,2
␈β∧h␈↓ ↓Z␈ε	1␈α␈4␈↓ ∧|␈εβ(␈↓ ¬π␈ε	M␈↓ ¬1␈ε↔␈␈↓ ¬Z␈ε	Z␈↓ ¬q␈εβ)␈↓ ¬|␈ε	N␈↓ ε↑␈ε↔α␈↓ ε␈␈ε	v␈↓ π#␈ε↔!␈↓ πN␈εβr␈α␈A␈α↓X␈↓ λ␈εβ.
␈β∧r␈↓ π∞␈εj
␈β¬␈↓ αo␈ε∃SL␈α␈C␈↓ βk␈ε∃5
␈β¬∂␈↓ ↓Z␈ε	1␈α␈5␈↓ ∧|␈εβ(␈↓ ¬π␈ε	M␈↓ ¬1␈ε↔␈␈↓ ¬Z␈ε	Z␈↓ ¬q␈εβ)␈↓ ¬|␈ε	N␈↓ ε<␈εβIn␈α␈terch␈α␈an␈α␈ge␈↓ πq␈εβrA␈↓ λ∨␈ε↔$␈↓ λJ␈εβrX␈↓ λo␈εβ.
␈β¬4␈↓ αo␈ε∃AD␈α␈D␈↓ βk␈ε∃W,3
␈β¬7␈↓ ↓Z␈ε	1␈α␈6␈↓ ∧|␈εβ(␈↓ ¬π␈ε	M␈↓ ¬1␈ε↔␈␈↓ ¬Z␈ε	Z␈↓ ¬q␈εβ)␈↓ ¬|␈ε	N␈↓ ε<␈εβAdd␈↓ π¬␈ε	w␈↓ πV␈εβto␈α
l␈α↓o␈α}w␈α␈er␈αha␈α␈l␈α↓f.
␈β¬B␈↓ π≠␈εi␈↓ π%␈εε+␈↓ π>␈εj
␈β¬\␈↓ αo␈ε∃JN␈α␈OV␈↓ βk␈ε∃*+2
␈β¬←␈↓ ↓Z␈ε	1␈α␈7␈↓ ∧|␈εβ(␈↓ ¬π␈ε	M␈↓ ¬1␈ε↔␈␈↓ ¬Z␈ε	Z␈↓ ¬q␈εβ)␈↓ ¬|␈ε	N␈↓ ε<␈εβDi␈α↓d␈α
o␈α␈v␈α}er⎇o␈α}w␈αo␈α␈ccu␈α␈r?
␈βεβ␈↓ αo␈ε∃IN␈α␈CX␈↓ βk␈ε∃1
␈βεε␈↓ ↓Z␈ε	1␈α␈8␈↓ ¬>␈ε	K␈↓ ε<␈εβIf␈αso␈α␈,␈αc␈α␈arry␈αo␈α␈ne␈αin␈α}to␈αup␈α␈pe␈α␈r␈αh␈α␈alf.
␈βε+␈↓ αo␈ε∃AD␈α␈D␈↓ βk␈ε∃CAR␈α␈RY
␈βε.␈↓ ↓Z␈ε	1␈α␈9␈↓ ∧|␈εβ(␈↓ ¬π␈ε	M␈↓ ¬1␈ε↔␈␈↓ ¬Z␈ε	Z␈↓ ¬q␈εβ)␈↓ ¬|␈ε	N␈↓ ε<␈εβAdd␈↓ π¬␈ε	k␈↓ π ␈εβto␈αlo␈α␈w␈α␈er␈αh␈α␈alf.
␈βεR␈↓ αo␈ε∃JN␈α␈OV␈↓ βk␈ε∃*+2
␈βεU␈↓ ↓Z␈ε	2␈α␈0␈↓ ∧|␈εβ(␈↓ ¬π␈ε	M␈↓ ¬1␈ε↔␈␈↓ ¬Z␈ε	Z␈↓ ¬q␈εβ)␈↓ ¬|␈ε	N␈↓ ε<␈εβDi␈α↓d␈α
o␈α␈v␈α}er⎇o␈α}w␈αo␈α␈ccu␈α␈r?
␈βεy␈↓ ¬V␈ε~0
␈βεz␈↓ αo␈ε∃IN␈α␈CX␈↓ βk␈ε∃1
␈βε⎇␈↓ ↓Z␈ε	2␈α␈1␈↓ ¬;␈ε	K␈↓ ε<␈εβIf␈αso␈α␈,␈αc␈α␈arry␈αo␈α␈ne␈αin␈α}to␈αup␈α␈pe␈α␈r␈αh␈α␈alf.
␈βπ"␈↓ αo␈ε∃ST␈α␈A␈↓ βk␈ε∃W,3
␈βπ%␈↓ ↓Z␈ε	2␈α␈2␈↓ ∧|␈εβ(␈↓ ¬π␈ε	M␈↓ ¬1␈ε↔␈␈↓ ¬Z␈ε	Z␈↓ ¬q␈εβ)␈↓ ¬|␈ε	N␈↓ ε<␈ε	w␈↓ π␈ε↔ ␈↓ π6␈ε	t␈↓ πH␈εβm␈α␈od␈↓ λ␈ε	b␈↓ λ→␈εβ.
␈βπ/␈↓ εR␈εi␈↓ ε]␈εε+␈↓ εv␈εj
␈βπI␈↓ αo␈ε∃DE␈α␈C1␈↓ βk␈ε∃1
␈βπL␈↓ ↓Z␈ε	2␈α␈3␈↓ ∧|␈εβ(␈↓ ¬π␈ε	M␈↓ ¬1␈ε↔␈␈↓ ¬Z␈ε	Z␈↓ ¬q␈εβ)␈↓ ¬|␈ε	N␈↓ ε<␈ε⊂M5.␈αLoo␈↓ π6␈ε⊂p␈↓ πT␈ε⊂on␈↓ λα␈ε	i␈↓ λ∂␈ε⊂.
␈βπf␈↓ ε<␈∧πfε<α{␈↓ π>␈∧πfπ>α[
␈βπq␈↓ αo␈ε∃DE␈α␈C3␈↓ βk␈ε∃1
␈βπt␈↓ ↓Z␈ε	2␈α␈4␈↓ ∧|␈εβ(␈↓ ¬π␈ε	M␈↓ ¬1␈ε↔␈␈↓ ¬Z␈ε	Z␈↓ ¬q␈εβ)␈↓ ¬|␈ε	N␈↓ ε<␈εβDecrea␈α␈se␈↓ πG␈ε	i␈↓ π←␈εβan␈α␈d␈α(␈↓ λ+␈ε	i␈↓ λ?␈εβ+␈↓ λh␈ε	j␈↓ λw␈εβ)␈αb␈α␈y␈αon␈α␈e.
␈βλ_␈↓ αo␈ε∃J1␈α␈P␈↓ βk␈ε∃2B
␈βλ≠␈↓ ↓Z␈ε	2␈α␈5␈↓ ∧|␈εβ(␈↓ ¬π␈ε	M␈↓ ¬1␈ε↔␈␈↓ ¬Z␈ε	Z␈↓ ¬q␈εβ)␈↓ ¬|␈ε	N␈↓ ε<␈εβB␈α↓a␈α␈ck␈αto␈α
M4␈αif␈↓ λ⊃␈ε	i␈↓ λ'␈εβ>␈α
0␈α␈;␈↓ λw␈εβrX␈↓ 	%␈εβ=␈ε↔␈α
b␈↓ 	\␈ε	t␈↓ 	h␈εβ/␈↓ 	y␈ε	b␈↓ 
ε␈ε↔c␈εβ.
␈βλ@␈↓ α≤␈ε∃8H␈↓ αo␈ε∃ST␈α␈X␈↓ βk␈ε∃W,2
␈βλC␈↓ ↓Z␈ε	2␈α␈6␈↓ ¬:␈ε	M␈↓ ε<␈εβSet␈↓ εv␈ε	w␈↓ π!␈ε↔ ␈↓ πL␈ε	k␈↓ π\␈εβ.
␈βλN␈↓ π␈εj
␈βλh␈↓ αo␈ε∃DE␈α␈C2␈↓ βk␈ε∃1
␈βλk␈↓ ↓Z␈ε	2␈α␈7␈↓ ¬:␈ε	M␈↓ ε<␈ε⊂M6.␈αLoo␈↓ π6␈ε⊂p␈↓ πT␈ε⊂on␈↓ λα␈ε	j␈↓ λ⊃␈ε⊂.
␈β	¬␈↓ ε<␈∧	¬ε<α{␈↓ π>␈∧	¬π>αE␈↓ λ
␈∧	¬λ
α⊃
␈β	∂␈↓ αo␈ε∃J2␈α␈P␈↓ βk␈ε∃1B
␈β	∩␈↓ ↓Z␈ε	2␈α␈8␈↓ ¬:␈ε	M␈↓ ε<␈εβRepe␈α␈at␈αun␈α}til␈↓ π⎇␈ε	j␈↓ λ∃␈εβ=␈α
0␈α␈.
␈β	∀␈↓ λ}␈∧	∀λ}≠∂
␈β	V␈↓ α␈εαThe␈α
ex␈α␈ecution␈αtime␈α
of␈αProgram␈α
M␈αdepends␈α
on␈α
the␈αn␈α␈um␈α␈ber␈α
of␈αplaces,␈↓ 
R␈ελM␈↓ 
x␈εα,␈αin
␈β
↓␈↓ ↓H␈εαthe␈α∂m␈α␈ultiplier␈↓ β1␈ελv␈↓ βC␈εα;␈α⊃the␈α∂n␈α␈um␈α␈ber␈α∂of␈α∂places,␈↓ εH␈ελN␈↓ εj␈εα,␈α⊂in␈α∂the␈α∞m␈α␈ultiplicand␈↓ 	E␈ελu␈↓ 	[␈εα;␈α⊂the␈α∂n␈α␈um␈α␈ber
␈β
'␈↓ 	j␈ε→0
␈β
,␈↓ ↓H␈εαof␈α
zeros,␈↓ αY␈ελZ␈↓ αr␈εα,␈α∞in␈α
the␈α∞m␈α␈ultiplier;␈α∞and␈α
the␈α∞n␈α␈um␈α␈ber␈α
of␈α∞carries,␈↓ λY␈ελK␈↓ 	¬␈εαand␈↓ 	L␈ελK␈↓ 	q␈εα,␈α∞that␈α
occur
␈β
W␈↓ ↓H␈εαduring␈αthe␈α
addition␈αto␈α
the␈α
lo␈α␈w␈α␈er␈αhalf␈α
of␈αthe␈α
product␈αin␈α
the␈α
computation␈αof␈↓ 
p␈ελt␈↓ 
⎇␈εα.␈α
If
␈β
}␈↓ ¬)␈ε→0
␈ββ␈↓ ↓H␈εαw␈α␈e␈α
appro␈α␈ximate␈αboth␈↓ ∧≡␈ελK␈↓ ∧F␈εαand␈↓ ¬␈ελK␈↓ ¬;␈εαby␈αthe␈α
reasonable␈α(although␈αsomewhat␈α
pessimis-
␈β+␈↓ αy␈ε¬1
␈β.␈↓ ↓H␈εαtic)␈αvalues␈↓ β␈εα(␈↓ β↔␈ελM␈↓ βD␈ε⊗␈␈↓ βp␈ελZ␈↓ ∧	␈εα)␈↓ ∧∃␈ελN␈↓ ∧7␈εα,␈αw␈α␈e␈α|nd␈αthat␈αthe␈αtotal␈αrunning␈αtime␈αcomes␈αto␈α28␈↓ 
:␈ελM␈↓ 
←␈ελN␈↓ λ␈εα+
␈β>␈↓ αy␈∧>αyα∂
␈βA␈↓ αy␈ε¬2
␈βY␈↓ ↓H␈εα10␈↓ ↓l␈ελM␈↓ α_␈εα+␈απ4␈↓ αU␈ελN␈↓ α⎇␈εα+␈απ3␈ε⊗␈απ␈␈↓ βl␈ελZ␈↓ ∧¬␈εα(28␈↓ ∧5␈ελN␈↓ ∧]␈εα+␈απ3)␈αcy␈α␈cles.␈αIf␈αstep␈αM2␈αw␈α␈ere␈αdeleted,␈αthe␈αrunning␈αtime
␈β∧␈↓ ↓H␈εαw␈α␈ould␈α
be␈α28␈↓ βα␈ελM␈↓ β(␈ελN␈↓ βP␈εα+␈αε7␈↓ ∧␈ελM␈↓ ∧8␈εα+␈αε4␈↓ ∧t␈ελN␈↓ ¬≤␈εα+␈αε3␈αcy␈α␈cles,␈αso␈αthis␈αstep␈α
is␈αnot␈αadvan␈α␈tageous␈α
unless
␈β/␈↓ ↓H␈εαthe␈α∞density␈α∞of␈α∂zero␈α∞positions␈α∞within␈α∂the␈α∞m␈α␈ultiplier␈α∞is␈↓ λ≤␈ελZ␈↓ λ5␈εα/␈↓ λG␈ελM␈↓ λ{␈εα>␈α∞3/(28␈↓ 
↓␈ελN␈↓ 
,␈εα+␈α	3).␈α∪If
␈β[␈↓ ↓H␈εαthe␈αm␈α␈ultiplier␈αis␈αchosen␈αcompletely␈αat␈αrandom,␈αthis␈αratio␈↓ λH␈ελZ␈↓ λb␈εα/␈↓ λt␈ελM␈↓ 	%␈εαis␈αexpected␈αto␈αbe
␈β
ε␈↓ ↓H␈εαonly␈αabout␈α
1/␈↓ β∨␈ελb␈↓ β.␈εα,␈αwhich␈αis␈αextremely␈αsmall;␈αso␈αstep␈αM2␈αis␈αusually␈ε∂␈αnot␈εα␈αw␈α␈orth␈α
while,
␈β
1␈↓ ↓H␈εαunless␈↓ α2␈ελb␈↓ αL␈εαis␈αsmall.
␈β
]␈↓ α␈εαAlgorithm␈α∂M␈α∂is␈α∂not␈α∞the␈α∂fastest␈α∂way␈α∂to␈α∂m␈α␈ultiply␈α∂when␈↓ λ|␈ελm␈↓ 	*␈εαand␈↓ 	s␈ελn␈↓ 
_␈εαare␈α∞large,
␈β∞λ␈↓ ↓H␈εαalthough␈α
it␈α
has␈α
the␈α∞advan␈α␈tage␈α
of␈α
simplicity.␈α⊂Speedier␈α
methods␈α
are␈α
discussed␈α
in
␈β∞3␈↓ ↓H␈εαSection␈α∞4.3.3;␈α⊂ev␈α␈en␈α∂when␈↓ ∧b␈ελm␈↓ ¬⊂␈εα=␈↓ ¬B␈ελn␈↓ ¬f␈εα=␈α∞4,␈α⊂it␈α∞is␈α∂possible␈α∞to␈α∂m␈α␈ultiply␈α∞n␈α␈um␈α␈bers␈α∂in␈α∞a
␈β∞←␈↓ ↓H␈εαlittle␈αless␈αtime␈αthan␈αis␈αrequired␈αby␈αAlgorithm␈αM.
␈β∂_␈↓ α␈εαThe␈α
|nal␈αalgorithm␈α
of␈αconcern␈α
to␈αus␈α
in␈αthis␈α
section␈α
is␈αlong␈α
division,␈αin␈α
which
␈β∂C␈↓ ↓H␈εαw␈α␈e␈αwan␈α␈t␈αto␈αdivide␈α(␈↓ βw␈ελn␈↓ ∧∀␈εα+␈↓ ∧?␈ελm␈↓ ∧←␈εα)-place␈αin␈α␈tegers␈αby␈↓ π
␈ελn␈↓ π ␈εα-place␈αin␈α␈tegers.␈αHere␈αthe␈αordinary
␈β∂n␈↓ ↓H␈εαpencil-and-paper␈αmethod␈αin␈α␈v␈α␈olv␈α␈es␈αa␈αcertain␈αamoun␈α␈t␈αof␈αguessw␈α␈ork␈αand␈αingen␈α␈uity
␈β⊂~␈↓ ↓H␈εαon␈α
the␈α
part␈αof␈α
the␈α
person␈α
doing␈αthe␈α
division;␈αw␈α␈e␈α
m␈α␈ust␈αeither␈α
eliminate␈α
this␈α
guess-
␈β⊂E␈↓ ↓H␈εαw␈α␈ork␈α∞from␈α∂the␈α∞algorithm␈α∂or␈α∞dev␈α␈elop␈α∂some␈α∂theory␈α∞to␈α∂explain␈α∞it␈α∂more␈α∞carefully.
␈β⊂q␈↓ α␈εαA␈α	momen␈α␈t's␈α
re⎇ection␈α	about␈α	the␈α
ordinary␈α	process␈α	of␈α
long␈α	division␈α	sho␈α␈ws␈α	that
␈β⊃≤␈↓ ↓H␈εαthe␈α	general␈α
problem␈α
breaks␈α
do␈α␈wn␈α	in␈α␈to␈α
simpler␈α
steps,␈α
each␈α
of␈α	which␈α
is␈α
the␈α	division
␈β∪(

␈β↓Y␈↓ ↓H␈εα4.3.1␈ε∞␈↓ π⊗TH␈α␈E␈α	CLASSICA␈α␈L␈α	AL␈α␈GORITH␈α␈MS␈↓ 
v␈εα253
␈βαq␈↓ β ␈ε∪Fig.␈α	6.␈εβ␈α∀Wan␈α␈te␈α␈d:␈α
a␈α	way␈αλto
␈ββ≤␈↓ β ␈εβde␈α␈termine␈↓ ∧;␈ε	q␈↓ ∧U␈εβrap␈α␈i␈α↓d␈α␈ly.
␈β∧A␈↓ ↓H␈εαof␈αan␈α(␈↓ α0␈ελn␈↓ αM␈εα+␈αλ1)-place␈αn␈α␈um␈α␈ber␈↓ ¬↓␈ελu␈↓ ¬#␈εαby␈αthe␈↓ ε∃␈ελn␈↓ ε+␈εα-place␈αdivisor␈↓ λ	␈ελv␈↓ λ≤␈εα,␈αwhere␈α0␈ε⊗␈α
∀␈↓ 	d␈ελu␈↓ 	y␈εα/␈↓ 
␈ελv␈↓ 
(␈εα<␈↓ 
V␈ελb␈↓ 
d␈εα;␈αthe
␈β∧l␈↓ ↓H␈εαremainder␈↓ αp␈ελr␈↓ β
␈εαafter␈αeach␈α
step␈αis␈αless␈α
than␈↓ ε0␈ελv␈↓ εB␈εα,␈αso␈αw␈α␈e␈α
may␈αuse␈α
the␈αquan␈α␈tity␈↓ 
␈ελr␈↓ 
≤␈ελb␈↓ 
0␈εα+␈↓ 
Z␈εα(next
␈β¬↔␈↓ ↓H␈εαplace␈α
of␈α
dividend)␈α
as␈α∞the␈α
new␈↓ ¬)␈ελu␈↓ ¬L␈εαin␈α∞the␈α
succeeding␈α
step.␈α⊂For␈α
example,␈α∞if␈α
w␈α␈e␈α
are
␈β¬B␈↓ ↓H␈εαask␈α␈ed␈αto␈αdivide␈α3142␈αby␈α47,␈αw␈α␈e␈α|rst␈αdivide␈α314␈αby␈α47,␈αgetting␈α6␈αand␈αa␈αremainder
␈β¬m␈↓ ↓H␈εαof␈α32;␈α
then␈αw␈α␈e␈αdivide␈α
322␈αby␈α47,␈α
getting␈α6␈α
and␈αa␈αremainder␈α
of␈α40;␈α
th␈α␈us␈αw␈α␈e␈αhav␈α␈e
␈βε→␈↓ ↓H␈εαa␈αquotien␈α␈t␈α
of␈α
66␈α
and␈α
a␈αremainder␈α
of␈α
40.␈α∞It␈α
is␈α
clear␈α
that␈αthis␈α
same␈α
idea␈α
w␈α␈orks␈αin
␈βεD␈↓ ↓H␈εαgeneral,␈α
and␈α
so␈α
our␈αsearch␈α
for␈α
an␈α
appropriate␈α
division␈α
algorithm␈α
reduces␈α
to␈αthe
␈βεo␈↓ ↓H␈εαfollo␈α␈wing␈αproblem␈α(Fig.␈α6):
␈βπ:␈↓ ↓←␈ε∂Let␈↓ α!␈ελu␈↓ αB␈εα=␈α
(␈↓ α|␈ελu␈↓ β∨␈ελu␈↓ βH␈εα.␈αε.␈αε.␈↓ βx␈ελu␈↓ ∧∨␈εα)␈↓ ∧C␈ε∂and␈↓ ¬	␈ελv␈↓ ¬'␈εα=␈α
(␈↓ ¬a␈ελv␈↓ ¬␈␈ελv␈↓ ε$␈εα.␈αε.␈αε.␈↓ εT␈ελv␈↓ εu␈εα)␈↓ π~␈ε∂be␈αnonnegativ␈α␈e␈αin␈α␈tegers␈α
in␈αradix
␈βπG␈↓ β⊃␈ε¬0␈↓ β4␈ε¬1␈↓ ∧
␈εn␈↓ ∧+␈εb␈↓ ¬q␈ε¬1␈↓ ε∂␈ε¬2␈↓ εc␈εn␈↓ π↓␈εb
␈βπe␈↓ ↓←␈ελb␈↓ ↓y␈ε∂notation,␈αsuch␈αthat␈↓ ∧3␈ελu␈↓ ∧I␈εα/␈↓ ∧[␈ελv␈↓ ∧x␈εα<␈↓ ¬&␈ελb␈↓ ¬4␈ε∂.␈αFind␈αan␈αalgorithm␈αto␈αdetermine␈↓ 	J␈ελq␈↓ 	d␈εα=␈ε⊗␈α
b␈↓ 
 ␈ελu␈↓ 
6␈εα/␈↓ 
H␈ελv␈↓ 
[␈ε⊗c␈ε∂.
␈βλ3␈↓ ↓H␈εαWe␈αmay␈αobserv␈α␈e␈αthat␈αthe␈αcondition␈↓ εβ␈ελu␈↓ ε→␈εα/␈↓ ε+␈ελv␈↓ εH␈εα<␈↓ εv␈ελb␈↓ π⊃␈εαis␈αequivalen␈α␈t␈αto␈αthe␈αcondition␈αthat
␈βλ↑␈↓ ↓H␈ελu␈↓ ↓]␈εα/␈↓ ↓o␈ελb␈↓ α␈εα>␈↓ α<␈ελv␈↓ αN␈εα;␈α∂i.e.,␈ε⊗␈α∞b␈↓ β;␈ελu␈↓ βQ␈εα/␈↓ βc␈ελb␈↓ βq␈ε⊗c␈εα␈α
<␈↓ ∧=␈ελv␈↓ ∧P␈εα.␈α⊃This␈α∞is␈α∞simply␈α∞the␈α
condition␈α∞that␈α∞(␈↓ 	⊗␈ελu␈↓ 	9␈ελu␈↓ 	b␈εα.␈αε.␈αε.␈↓ 
∩␈ελu␈↓ 
c␈εα)␈↓ λ␈εα<
␈βλl␈↓ 	*␈ε¬0␈↓ 	M␈ε¬1␈↓ 
&␈εn␈↓ 
8␈ε→␈␈ε¬1␈↓ 
o␈εb
␈β	
␈↓ ↓H␈εα(␈↓ ↓T␈ελv␈↓ ↓r␈ελv␈↓ α⊗␈εα.␈αε.␈αε.␈↓ αF␈ελv␈↓ αh␈εα)␈↓ β␈εα.␈α∞Furthermore,␈α
if␈αw␈α␈e␈α
write␈↓ ε,␈ελr␈↓ εG␈εα=␈↓ εv␈ελu␈↓ π∀␈ε⊗␈␈↓ π@␈ελq␈↓ πP␈ελv␈↓ πc␈εα,␈α
then␈↓ λM␈ελq␈↓ λi␈εαis␈α
the␈α
unique␈αin␈α␈teger
␈β	↔␈↓ ↓c␈ε¬1␈↓ αα␈ε¬2␈↓ αV␈εn␈↓ αt␈εb
␈β	5␈↓ ↓H␈εαsuch␈αthat␈α0␈ε⊗␈α
∀␈↓ β2␈ελr␈↓ βK␈ε⊗∀␈↓ βy␈ελv␈↓ ∧␈εα.
␈β	`␈↓ α␈εαThe␈α	most␈αλobvious␈α	approach␈α	to␈αλthis␈α	problem␈αλis␈α	to␈α	mak␈α␈e␈αλa␈α	guess␈αλabout␈↓ 
1␈ελq␈↓ 
A␈εα,␈α	based
␈β
␈↓ ↓H␈εαon␈α
the␈α
most␈α
signi|can␈α␈t␈α
digits␈α
of␈↓ ¬;␈ελu␈↓ ¬[␈εαand␈↓ ε∨␈ελv␈↓ ε2␈εα.␈αIt␈α
isn't␈α
obvious␈α
that␈α
such␈α
a␈α
method␈α
will
␈β
6␈↓ ↓H␈εαbe␈αreliable␈αenough,␈αbut␈αit␈αis␈αw␈α␈orth␈αin␈α␈v␈α␈estigating;␈αlet␈αus␈αtherefore␈αset
␈β
}␈↓ ¬Q␈ε↓∩␈↓ ¬m␈ε↓⊗␈↓ π
␈ε↓↔␈↓ λ
␈ε↓∪
␈β↓␈↓ ε↓␈ελu␈↓ ε$␈ελb␈↓ ε:␈εα+␈↓ εf␈ελu
␈β∂␈↓ ε∃␈ε¬0␈↓ ε{␈ε¬1
␈β_␈↓ ∧F␈εα∂␈↓ ∧G␈ελq␈↓ ∧a␈εα=␈↓ ¬∂␈εαmin␈↓ π#␈εα,␈↓ π9␈ελb␈↓ πO␈ε⊗␈␈εα␈αλ1␈↓ λ#␈εα.␈↓ α␈εα(2)
␈β)␈↓ ε↓␈∧)ε↓α↓	
␈β1␈↓ ε6␈ελv
␈β>␈↓ εF␈ε¬1
␈βz␈↓ ↓H␈εαThis␈α
form␈α␈ula␈α∞says␈↓ βq␈εα∂␈↓ βr␈ελq␈↓ ∧⊂␈εαis␈α
obtained␈α∞by␈α∞dividing␈α∞the␈α
t␈α␈w␈α␈o␈α∞leading␈α∞digits␈α∞of␈↓ 
!␈ελu␈↓ 
E␈εαby␈α
the
␈β%␈↓ ↓H␈εαleading␈αdigit␈αof␈↓ βB␈ελv␈↓ βT␈εα;␈αand␈αif␈αthe␈αresult␈αis␈↓ ε_␈ελb␈↓ ε3␈εαor␈αmore␈αw␈α␈e␈αcan␈αreplace␈αit␈αby␈α(␈↓ 
∞␈ελb␈↓ 
$␈ε⊗␈␈εα␈αλ1).
␈βQ␈↓ α␈εαIt␈α⊃is␈α⊂a␈α⊂remarkable␈α⊃fact,␈α⊃which␈α⊃w␈α␈e␈α⊂will␈α⊃no␈α␈w␈α⊂in␈α␈v␈α␈estigate,␈α∩that␈α⊂this␈α⊃value␈↓ ≠␈εα∂␈↓ ≤␈ελq
␈β|␈↓ ↓H␈εαis␈α∞always␈α∂a␈α∂v␈α␈ery␈α∂good␈α∂appro␈α␈ximation␈α∂to␈α∂the␈α∞desired␈α∂answ␈α␈er␈↓ 	∂␈ελq␈↓ 	∨␈εα,␈α⊂so␈α∂long␈α∂as␈↓ 
g␈ελv␈↓ ∀␈εαis
␈β
	␈↓ 
w␈ε¬1
␈β
'␈↓ ↓H␈εαreasonably␈αlarge.␈α
In␈αorder␈αto␈α
analyze␈αho␈α␈w␈αclose␈↓ π8␈εα∂␈↓ π9␈ελq␈↓ πV␈εαcomes␈αto␈↓ λl␈ελq␈↓ λ|␈εα,␈α
w␈α␈e␈αwill␈α|rst␈αpro␈α␈v␈α␈e
␈β
R␈↓ ↓H␈εαthat␈↓ α∃␈εα∂␈↓ α⊗␈ελq␈↓ α2␈εαis␈αnev␈α␈er␈αtoo␈αsmall.
␈β∞∂␈↓ ↓H␈ε∩Theorem␈αA.␈ε∂␈α→In␈αthe␈αnotation␈αabo␈α␈v␈α␈e,␈↓ εε␈εα∂␈↓ επ␈ελq␈↓ ε!␈ε⊗∃␈↓ εO␈ελq␈↓ ε←␈ε∂.
␈β∞M␈↓ ↓H␈ε∂Proof.␈εα␈αSince␈↓ β
␈ελq␈↓ β$␈ε⊗∀␈↓ βR␈ελb␈↓ βa␈ε⊗␈␈εα1,␈απthe␈απtheorem␈αεis␈απcertainly␈αεtrue␈αεif␈↓ πx␈εα∂␈↓ πy␈ελq␈↓ λ∪␈εα=␈↓ λA␈ελb␈↓ λP␈ε⊗␈␈εα1.␈α
Suppose␈αεtherefore
␈β∞x␈↓ ↓H␈εαthat␈↓ α⊃␈εα∂␈↓ α∩␈ελq␈↓ α,␈εα<␈↓ αZ␈ελb␈↓ αl␈ε⊗␈␈εα␈α∧1;␈α	it␈α	follo␈α␈ws␈αλthat␈↓ ¬↔␈εα∂␈↓ ¬_␈ελq␈↓ ¬2␈εα=␈ε⊗␈α
b␈εα(␈↓ ¬z␈ελu␈↓ ε≥␈ελb␈↓ ε/␈εα+␈↓ εV␈ελu␈↓ εy␈εα)/␈↓ π↔␈ελv␈↓ π5␈ε⊗c␈εα,␈α
hence␈↓ λ6␈εα∂␈↓ λ7␈ελq␈↓ λG␈ελv␈↓ λo␈ε⊗∃␈↓ 	≥␈ελu␈↓ 	@␈ελb␈↓ 	R␈εα+␈↓ 	z␈ελu␈↓ 
 ␈ε⊗␈␈↓ 
G␈ελv␈↓ 
i␈εα+␈αβ1.
␈β∂¬␈↓ ε∂␈ε¬0␈↓ εk␈ε¬1␈↓ π'␈ε¬1␈↓ λW␈ε¬1␈↓ 	2␈ε¬0␈↓ 
∞␈ε¬1␈↓ 
W␈ε¬1
␈β∂#␈↓ ↓H␈εαTherefore
␈β∂c␈↓ βx␈εn␈↓ ∧
␈ε→␈␈ε¬␈α␈1␈↓ ¬≡␈εn
␈β∂i␈↓ ↓M␈ελu␈↓ ↓j␈ε⊗␈␈↓ α⊗␈εα∂␈↓ α⊗␈ελq␈↓ α'␈ελv␈↓ αC␈ε⊗∀␈↓ αq␈ελu␈↓ β∂␈ε⊗␈␈↓ β:␈εα∂␈↓ β;␈ελq␈↓ βK␈ελv␈↓ βi␈ελb␈↓ ∧?␈ε⊗∀␈↓ ∧m␈ελu␈↓ ¬⊂␈ελb␈↓ ¬8␈εα+␈↓ ¬d␈ε⊗↓␈αε↓␈αε↓␈↓ ε⊗␈εα+␈↓ εB␈ελu
␈β∂w␈↓ β[␈ε¬1␈↓ ¬↓␈ε¬0␈↓ εW␈εn
␈β⊂⊗␈↓ ¬n␈εn␈↓ εe␈εn␈↓ εw␈ε→␈␈ε¬1␈↓ λβ␈εn␈↓ λ∃␈ε→␈␈ε¬1␈↓ 	α␈εn␈↓ 	∀␈ε→␈␈ε¬1
␈β⊂≤␈↓ ¬¬␈ε⊗␈␈εα␈αλ(␈↓ ¬=␈ελu␈↓ ¬`␈ελb␈↓ ελ␈εα+␈↓ ε4␈ελu␈↓ εW␈ελb␈↓ π*␈ε⊗␈␈↓ πV␈ελv␈↓ πu␈ελb␈↓ λH␈εα+␈↓ λt␈ελb␈↓ 	@␈εα)
␈β⊂)␈↓ ¬Q␈ε¬0␈↓ εI␈ε¬1␈↓ πf␈ε¬1
␈β⊂O␈↓ ¬≡␈εn␈↓ ¬0␈ε→␈␈ε¬2␈↓ πV␈εn␈↓ πh␈ε→␈␈ε¬1␈↓ λt␈εn␈↓ 	ε␈ε→␈␈ε¬␈α␈1␈↓ 
∃␈εn␈↓ 
'␈ε→␈␈ε¬1
␈β⊂U␈↓ ∧?␈εα=␈↓ ∧m␈ελu␈↓ ¬⊂␈ελb␈↓ ¬c␈εα+␈↓ ε∂␈ε⊗↓␈αε↓␈αε↓␈↓ εA␈εα+␈↓ εm␈ελu␈↓ π≤␈ε⊗␈␈↓ πH␈ελb␈↓ λ≠␈εα+␈↓ λG␈ελv␈↓ λe␈ελb␈↓ 	;␈εα<␈↓ 	i␈ελv␈↓ 
π␈ελb␈↓ 
\␈ε⊗∀␈↓ 
␈ελv␈↓ ≥␈εα.
␈β⊂c␈↓ ¬↓␈ε¬2␈↓ πα␈εn␈↓ λW␈ε¬1␈↓ 	y␈ε¬1
␈β⊃≤␈↓ ↓H␈εαSince␈↓ α&␈ελu␈↓ αC␈ε⊗␈␈↓ αn␈εα∂␈↓ αo␈ελq␈↓ α␈␈ελv␈↓ β≤␈εα<␈↓ βJ␈ελv␈↓ β]␈εα,␈αw␈α␈e␈αm␈α␈ust␈αhav␈α␈e␈↓ ¬U␈εα∂␈↓ ¬V␈ελq␈↓ ¬p␈ε⊗∃␈↓ ε≡␈ελq␈↓ ε.␈εα.
␈β⊃!␈↓ ε`␈∧⊃!ε`≠∂
␈β∪(

␈β↓Y␈↓ ↓H␈εα254␈↓ α=␈ε∞A␈α␈RITH␈α␈METIC␈εα␈↓ 
b4.3.1
␈βα(␈↓ α␈εαWe␈αλwill␈αλno␈α␈w␈αλpro␈α␈v␈α␈e␈αλthat␈↓ ∧v␈εα∂␈↓ ∧w␈ελq␈↓ ¬∂␈εαcannot␈αλbe␈αλm␈α␈uch␈αλlarger␈αλthan␈↓ λ<␈ελq␈↓ λT␈εαin␈αλpractical␈αλsituations.
␈βαS␈↓ ↓H␈εαAssume␈αthat␈↓ β→␈εα∂␈↓ β~␈ελq␈↓ β4␈ε⊗∃␈↓ βb␈ελq␈↓ βz␈εα+␈αλ3.␈αWe␈αhav␈α␈e
␈ββ≤␈↓ ¬>␈εn␈↓ ε5␈εn␈↓ εG␈ε→␈␈ε¬1
␈ββ!␈↓ βD␈ελu␈↓ βg␈ελb␈↓ β⎇␈εα+␈↓ ∧)␈ελu␈↓ ¬␈ελu␈↓ ¬/␈ελb␈↓ ¬X␈εα+␈↓ ε∧␈ελu␈↓ ε'␈ελb␈↓ π\␈ελu␈↓ 	~␈ελu
␈ββ.␈↓ βY␈ε¬0␈↓ ∧>␈ε¬1␈↓ ¬!␈ε¬0␈↓ ε_␈ε¬1
␈ββ8␈↓ αw␈εα∂␈↓ αx␈ελq␈↓ β∩␈ε⊗∀␈↓ ∧Z␈εα=␈↓ π␈ε⊗∀␈↓ λ*␈εα<␈↓ 	r␈εα.
␈ββH␈↓ βD␈∧βHβDα↓	␈↓ ¬␈∧βH¬α↓f␈↓ π2␈∧βHπ2αj␈↓ λ\␈∧βHλ\α↓∪
␈ββN␈↓ ¬w␈εn␈↓ ε	␈ε→␈␈ε¬1␈↓ π←␈εn␈↓ πq␈ε→␈␈ε¬␈α␈1␈↓ 	1␈εn␈↓ 	C␈ε→␈␈ε¬1
␈ββP␈↓ βy␈ελv␈↓ ¬J␈ελv␈↓ ¬i␈ελb␈↓ π2␈ελv␈↓ πP␈ελb␈↓ λ\␈ελv␈↓ λw␈ε⊗␈␈↓ 	#␈ελb
␈ββ↑␈↓ ∧	␈ε¬1␈↓ ¬Z␈ε¬1␈↓ πB␈ε¬1
␈ββ⎇␈↓ ↓H␈ε↓␈␈↓ 	E␈ε↓↓
␈β∧↔␈↓ β;␈εn␈↓ βM␈ε→␈␈ε¬1
␈β∧≤␈↓ ↓V␈εαThe␈απcase␈↓ αb␈ελv␈↓ α␈␈εα=␈↓ β-␈ελb␈↓ β␈␈εαis␈απimpossible,␈αλfor␈απif␈↓ ε"␈ελv␈↓ ε?␈εα=␈α
(100␈↓ π5␈εα.␈αε.␈αε.␈↓ πe␈εα0␈↓ πw␈εα)␈↓ λ⊗␈εαthen␈↓ λc␈ελq␈↓ λ⎇␈εα=␈↓ 	*␈εα∂␈↓ 	+␈ελq␈↓ 	;␈εα.␈↓ 	Z␈εαFurthermore,
␈β∧*␈↓ λβ␈εb
␈β∧H␈↓ ↓H␈εαsince␈↓ α ␈ελq␈↓ α:␈εα>␈α
(␈↓ αt␈ελu␈↓ β	␈εα/␈↓ β≠␈ελv␈↓ β.␈εα)␈ε⊗␈αλ␈␈εα␈αλ1,
␈β¬∪␈↓ π]␈ε↓ ␈↓ 	∞␈ε↓!
␈β¬≤␈↓ λ*␈εn␈↓ λ;␈ε→␈␈ε¬1
␈β¬!␈↓ ¬_␈ελu␈↓ ε'␈ελu␈↓ πC␈ελu␈↓ λ≠␈ελb
␈β¬8␈↓ α␈␈εα3␈ε⊗␈α
∀␈↓ βH␈εα∂␈↓ βI␈ελq␈↓ βa␈ε⊗␈␈↓ ∧
␈ελq␈↓ ∧'␈εα<␈↓ ¬w␈ε⊗␈␈↓ εI␈εα+␈αλ1␈α
=␈↓ 	-␈εα+␈αλ1.
␈β¬H␈↓ ∧Y␈∧¬H∧Yα↓∪␈↓ ε'␈∧¬Hε'α⊗␈↓ πC␈∧¬HπCα⊗␈↓ πx␈∧¬Hπxα↓∪
␈β¬N␈↓ ¬.␈εn␈↓ ¬@␈ε→␈␈ε¬1␈↓ λM␈εn␈↓ λ←␈ε→␈␈ε¬1
␈β¬P␈↓ ∧Y␈ελv␈↓ ∧t␈ε⊗␈␈↓ ¬ ␈ελb␈↓ ε)␈ελv␈↓ πE␈ελv␈↓ πx␈ελv␈↓ λ∪␈ε⊗␈␈↓ λ?␈ελb
␈βε&␈↓ ↓H␈εαTherefore
␈βεD␈↓ ¬%␈ε↓ ␈↓ εV␈ε↓!
␈βεM␈↓ ε∃␈εn␈↓ ε'␈ε→␈␈ε¬1
␈βεR␈↓ ∧;␈ελu␈↓ ¬@␈ελv␈↓ ¬Z␈ε⊗␈␈↓ εε␈ελb
␈βεi␈↓ ∧←␈εα>␈α
2␈↓ εw␈ε⊗∃␈εα␈α
2(␈↓ πC␈ελv␈↓ πi␈ε⊗␈␈εα␈αλ1).
␈βεv␈↓ πS␈ε¬1
␈βεy␈↓ ∧;␈∧εy∧;α⊗␈↓ ¬@␈∧εy¬@α↓∪
␈βε␈␈↓ ¬q␈εn␈↓ εβ␈ε→␈␈ε¬1
␈βπ↓␈↓ ∧<␈ελv␈↓ ¬c␈ελb
␈βπK␈↓ ↓H␈εαFinally,␈α
since␈↓ β"␈ελb␈↓ β6␈ε⊗␈␈εα␈α¬4␈ε⊗␈α
∃␈↓ ∧(␈εα∂␈↓ ∧)␈ελq␈↓ ∧?␈ε⊗␈␈εα␈α¬3␈ε⊗␈α
∃␈↓ ¬2␈ελq␈↓ ¬L␈εα=␈ε⊗␈α
b␈↓ ελ␈ελu␈↓ ε≡␈εα/␈↓ ε0␈ελv␈↓ εC␈ε⊗c␈α
∃␈εα␈α
2(␈↓ π'␈ελv␈↓ πK␈ε⊗␈␈εα␈α¬1),␈α
w␈α␈e␈α
hav␈α␈e␈↓ 	-␈ελv␈↓ 	U␈εα<␈ε⊗␈α
b␈↓ 
⊃␈ελb␈↓ 
∨␈εα/2␈ε⊗c␈εα.␈αThis
␈βπX␈↓ π7␈ε¬1␈↓ 	<␈ε¬1
␈βπv␈↓ ↓H␈εαpro␈α␈v␈α␈es␈αthe␈αresult␈αw␈α␈e␈αseek:
␈βλ4␈↓ ↓H␈ε∩Theorem␈αB.␈ε∂␈α→If␈↓ β?␈ελv␈↓ βg␈ε⊗∃␈α
b␈↓ ∧#␈ελb␈↓ ∧1␈εα/2␈ε⊗c␈ε∂,␈αthen␈↓ ¬J␈εα∂␈↓ ¬K␈ελq␈↓ ¬c␈ε⊗␈␈εα␈αλ2␈ε⊗␈α
∀␈↓ εY␈ελq␈↓ εt␈ε⊗∀␈↓ π!␈εα∂␈↓ π"␈ελq␈↓ π2␈ε∂.
␈βλ9␈↓ πc␈∧λ9πc≠∂
␈βλA␈↓ βO␈ε¬1
␈βλq␈↓ α␈εαThe␈αλmost␈απimportan␈α␈t␈αλpart␈απof␈αλthis␈απtheorem␈αλis␈απthat␈ε∂␈αλthe␈απconclusion␈αλis␈απindependen␈α␈t
␈β	≥␈↓ ↓H␈ε∂of␈↓ ↓r␈ελb␈↓ α␈εα;␈α	no␈απmatter␈απho␈α␈w␈αλlarge␈↓ ∧K␈ελb␈↓ ∧`␈εαis,␈α	the␈απtrial␈απquotien␈α␈t␈↓ π∀␈εα∂␈↓ π∃␈ελq␈↓ π-␈εαwill␈απnev␈α␈er␈απbe␈απmore␈αλthan␈απ2␈απin␈απerror.
␈β	H␈↓ α␈εαThe␈αλcondition␈αλthat␈↓ ∧7␈ελv␈↓ ∧←␈ε⊗∃␈α
b␈↓ ¬≠␈ελb␈↓ ¬)␈εα/2␈ε⊗c␈εα␈αλis␈α	v␈α␈ery␈αλm␈α␈uch␈αλlik␈α␈e␈αλa␈αλnormalization␈αλrequiremen␈α␈t;
␈β	U␈↓ ∧F␈ε¬1
␈β	s␈↓ ↓H␈εαin␈α
fact,␈α
it␈α
is␈α
exactly␈α
the␈α
condition␈α
of␈α
⎇oating-binary␈α
normalization,␈α
in␈α
a␈α
binary
␈β
≡␈↓ ↓H␈εαcomputer.␈α⊃One␈α
simple␈α∞way␈α
to␈α∞ensure␈α∞that␈↓ εr␈ελv␈↓ π≡␈εαis␈α∞su}cien␈α␈tly␈α∞large␈α
is␈α∞to␈α
m␈α␈ultiply
␈β
,␈↓ πα␈ε¬1
␈β
I␈↓ ↓H␈εαboth␈↓ α≥␈ελu␈↓ αA␈εαand␈↓ βλ␈ελv␈↓ β)␈εαby␈ε⊗␈α∞b␈↓ βm␈ελb␈↓ β{␈εα/(␈↓ ∧→␈ελv␈↓ ∧@␈εα+␈α
1)␈ε⊗c␈εα;␈α∞this␈α∞does␈α∞not␈α
change␈α∞the␈α∞value␈α
of␈↓ 	T␈ελu␈↓ 	j␈εα/␈↓ 	|␈ελv␈↓ 
∂␈εα,␈α∞nor␈α
does
␈β
W␈↓ ∧)␈ε¬1
␈β
u␈↓ ↓H␈εαit␈αincrease␈α
the␈αn␈α␈um␈α␈ber␈αof␈α
places␈αin␈↓ ¬u␈ελv␈↓ ελ␈εα,␈αand␈α
ex␈α␈ercise␈α23␈α
pro␈α␈v␈α␈es␈αthat␈α
it␈αwill␈αalways
␈β ␈↓ ↓H␈εαmak␈α␈e␈α∞the␈α∞new␈α∞value␈α∂of␈↓ ∧D␈ελv␈↓ ∧p␈εαlarge␈α∞enough.␈α∪(␈ε∂Note:␈εα␈α⊃Another␈α∞way␈α∞to␈α∞normalize␈α∞the
␈β-␈↓ ∧T␈ε¬1
␈βK␈↓ ↓H␈εαdivisor␈αis␈αdiscussed␈αin␈αex␈α␈ercise␈α28.)
␈βv␈↓ α␈εαNo␈α␈w␈αthat␈αw␈α␈e␈αhav␈α␈e␈αarmed␈α
ourselv␈α␈es␈αwith␈αall␈αof␈αthese␈αfacts,␈αw␈α␈e␈αare␈αin␈αa␈αposi-
␈β!␈↓ ↓H␈εαtion␈αto␈αwrite␈α
the␈αdesired␈α
long␈αdivision␈α
algorithm.␈α
This␈αalgorithm␈α
uses␈αa␈αsligh␈α␈tly
␈βM␈↓ ↓H␈εαimpro␈α␈v␈α␈ed␈αchoice␈αof␈↓ β|␈εα∂␈↓ β|␈ελq␈↓ ∧→␈εαin␈αstep␈αD3,␈α
which␈αguaran␈α␈tees␈αthat␈↓ λ>␈ελq␈↓ λX␈εα=␈↓ 	ε␈εα∂␈↓ 	π␈ελq␈↓ 	#␈εαor␈↓ 	N␈εα∂␈↓ 	O␈ελq␈↓ 	h␈ε⊗␈␈εα␈αλ1;␈αin␈αfact,
␈βx␈↓ ↓H␈εαthe␈αimpro␈α␈v␈α␈ed␈αchoice␈αof␈↓ ∧9␈εα∂␈↓ ∧:␈ελq␈↓ ∧V␈εαmade␈αhere␈αis␈αalmost␈αalways␈αaccurate.
␈β
6␈↓ ↓H␈ε∩Algorithm␈α	D␈εα␈α	(␈ε∂Division␈α	of␈α	nonnegativ␈α␈e␈α	in␈α␈tegers␈↓ π∪␈εα)␈ε∩.␈εα␈α∩Giv␈α␈en␈α	nonnegativ␈α␈e␈α	in␈α␈tegers␈↓ 
i␈ελu␈↓ λ␈εα=
␈β
a␈↓ ↓H␈εα(␈↓ ↓T␈ελu␈↓ ↓w␈ελu␈↓ α ␈εα.␈αε.␈αε.␈↓ αP␈ελu␈↓ β-␈εα)␈↓ βS␈εαand␈↓ ∧≠␈ελv␈↓ ∧;␈εα=␈α
(␈↓ ∧x␈ελv␈↓ ¬↔␈ελv␈↓ ¬;␈εα.␈αε.␈αε.␈↓ ¬k␈ελv␈↓ ε
␈εα)␈↓ ε%␈εα,␈α∞where␈↓ π'␈ελv␈↓ πS␈ε⊗≤␈εα␈α
0␈α∞and␈↓ λl␈ελn␈↓ 	∂␈εα>␈α∞1,␈α∞w␈α␈e␈α∞form␈α∞the
␈β
n␈↓ ↓h␈ε¬1␈↓ α␈ε¬2␈↓ αd␈εm␈↓ α}␈ε¬+␈↓ β≠␈εn␈↓ β9␈εb␈↓ ¬λ␈ε¬1␈↓ ¬&␈ε¬2␈↓ ¬{␈εn␈↓ ε→␈εb␈↓ π7␈ε¬1
␈β∞␈↓ ↓H␈εαquotien␈α␈t␈ε⊗␈α
b␈↓ αd␈ελu␈↓ αy␈εα/␈↓ β␈ελv␈↓ β≡␈ε⊗c␈εα␈α=␈α(␈↓ βt␈ελq␈↓ ∧∂␈ελq␈↓ ∧1␈εα.␈αε.␈αε.␈↓ ∧a␈ελq␈↓ ¬λ␈εα)␈↓ ¬-␈εαand␈α
the␈α
remainder␈↓ π↑␈ελu␈↓ πz␈εαmod␈↓ λD␈ελv␈↓ λb␈εα=␈α(␈↓ 	≡␈ελr␈↓ 	9␈ελr␈↓ 	Z␈εα.␈αε.␈αε.␈↓ 

␈ελr␈↓ 
)␈εα)␈↓ 
A␈εα.␈α∂(This
␈β∞~␈↓ ∧↓␈ε¬0␈↓ ∧≤␈ε¬1␈↓ ∧n␈εm␈↓ ¬∀␈εb␈↓ 	+␈ε¬1␈↓ 	F␈ε¬2␈↓ 
↔␈εn␈↓ 
5␈εb
␈β∞7␈↓ ↓H␈εαnotation␈α
is␈α
sligh␈α␈tly␈α∞di{eren␈α␈t␈α
from␈α
that␈α∞used␈α
in␈α
the␈α∞abo␈α␈v␈α␈e␈α
proofs.␈α⊂When␈↓ 
>␈ελn␈↓ 
`␈εα=␈α1,
␈β∞c␈↓ ↓H␈εαthe␈αsimpler␈αalgorithm␈αof␈αex␈α␈ercise␈α16␈αshould␈αbe␈αused.)
␈β∂↔␈↓ ↓H␈ε∩D1.␈↓ α␈εα[Normalize.]␈α∨Set␈↓ ∧+␈ελd␈↓ ∧N␈ε⊗ ␈α⊂b␈↓ ¬⊂␈ελb␈↓ ¬≡␈εα/(␈↓ ¬<␈ελv␈↓ ¬e␈εα+␈α
1)␈ε⊗c␈εα.␈α⊗Then␈α∂set␈α⊂(␈↓ λλ␈ελu␈↓ λ+␈ελu␈↓ λN␈ελu␈↓ λw␈εα.␈αε.␈αε.␈↓ 	'␈ελu␈↓ 
∧␈εα)␈↓ 
+␈εαequal␈α∂to
␈β∂$␈↓ ¬L␈ε¬1␈↓ λ≤␈ε¬0␈↓ λ?␈ε¬1␈↓ λb␈ε¬2␈↓ 	;␈εm␈↓ 	U␈ε¬+␈↓ 	r␈εn␈↓ 
⊂␈εb
␈β∂B␈↓ α␈εα(␈↓ α_␈ελu␈↓ α;␈ελu␈↓ αd␈εα.␈αε.␈αε.␈↓ β∀␈ελu␈↓ βq␈εα)␈↓ ∧∃␈εαtimes␈↓ ∧u␈ελd␈↓ ¬	␈εα,␈αand␈αset␈α(␈↓ ε)␈ελv␈↓ εG␈ελv␈↓ εk␈εα.␈αε.␈αε.␈↓ π≠␈ελv␈↓ π=␈εα)␈↓ πa␈εαequal␈αto␈α(␈↓ λv␈ελv␈↓ 	∃␈ελv␈↓ 	9␈εα.␈αε.␈αε.␈↓ 	i␈ελv␈↓ 
␈εα)␈↓ 
.␈εαtimes␈↓ ∞␈ελd␈↓ "␈εα.
␈β∂P␈↓ α-␈ε¬1␈↓ αP␈ε¬2␈↓ β)␈εm␈↓ βB␈ε¬+␈↓ β←␈εn␈↓ β⎇␈εb␈↓ ε9␈ε¬1␈↓ εW␈ε¬2␈↓ π+␈εn␈↓ πI␈εb␈↓ 	ε␈ε¬1␈↓ 	$␈ε¬2␈↓ 	y␈εn␈↓ 
↔␈εb
␈β∂m␈↓ α␈εα(Note␈α
the␈α	in␈α␈troduction␈α
of␈α
the␈α	new␈α
digit␈α	position␈↓ πv␈ελu␈↓ λ#␈εαat␈α	the␈α
left␈α
of␈↓ 	m␈ελu␈↓ 
⊂␈εα;␈αif␈↓ 
D␈ελd␈↓ 
b␈εα=␈α
1,
␈β∂{␈↓ λ␈ε¬0␈↓ 
α␈ε¬1
␈β⊂→␈↓ α␈εαall␈α∂w␈α␈e␈α∂need␈α∂to␈α∞do␈α∂in␈α∂this␈α∂step␈α∂is␈α∂to␈α∞set␈↓ πλ␈ελu␈↓ π:␈ε⊗ ␈εα␈α∂0.␈α∀On␈α∂a␈α∂binary␈α∂computer␈α∞it
␈β⊂&␈↓ π≥␈ε¬0
␈β⊂D␈↓ α␈εαmay␈αbe␈αpreferable␈αto␈αchoose␈↓ ¬P␈ελd␈↓ ¬p␈εαto␈αbe␈αa␈αpo␈α␈w␈α␈er␈αof␈α2␈αinstead␈αof␈αusing␈αthe␈αvalue
␈β⊂o␈↓ α␈εαsuggested␈α
here;␈αan␈α␈y␈α	value␈α
of␈↓ ¬K␈ελd␈↓ ¬i␈εαthat␈α
results␈α
in␈↓ πM␈ελv␈↓ πu␈ε⊗∃␈α
b␈↓ λ1␈ελb␈↓ λ?␈εα/2␈ε⊗c␈εα␈α
will␈α
su}ce.␈αSee␈α	also
␈β⊂|␈↓ π]␈ε¬1
␈β⊃~␈↓ α␈εαex␈α␈ercise␈α37.)
␈β∪(

␈β↓Y␈↓ ↓H␈εα4.3.1␈ε∞␈↓ π⊗TH␈α␈E␈α	CLASSICA␈α␈L␈α	AL␈α␈GORITH␈α␈MS␈↓ 
v␈εα255
␈βε∪␈↓ ¬↔␈ε∪Fig.␈α7.␈εβ␈α→Long␈α
division␈α␈.
␈βπ⊗␈↓ ↓H␈ε∩D2.␈↓ α␈εα[Initialize␈↓ β.␈ελj␈↓ β?␈εα.]␈α Set␈↓ ∧5␈ελj␈↓ ∧W␈ε⊗ ␈εα␈α⊃0.␈α_(The␈α⊃loop␈α⊂on␈↓ π#␈ελj␈↓ π3␈εα,␈α⊃steps␈α⊃D2␈α⊂through␈α⊂D7,␈α⊃will␈α⊂be
␈βπA␈↓ α␈εαessen␈α␈tially␈α⊂a␈α⊂division␈α⊃of␈α⊂(␈↓ ¬$␈ελu␈↓ ¬F␈ελu␈↓ ε→␈εα.␈αε.␈αε.␈↓ εI␈ελu␈↓ π→␈εα)␈↓ πA␈εαby␈α⊃(␈↓ λε␈ελv␈↓ λ$␈ελv␈↓ λH␈εα.␈αε.␈αε.␈↓ λx␈ελv␈↓ 	~␈εα)␈↓ 	B␈εαto␈α⊂get␈α⊂a␈α⊂single
␈βπN␈↓ ¬8␈εj␈↓ ¬Z␈εj␈↓ ¬g␈ε¬+1␈↓ ε]␈εj␈↓ εj␈ε¬+␈↓ ππ␈εn␈↓ π%␈εb␈↓ λ∃␈ε¬1␈↓ λ4␈ε¬2␈↓ 	λ␈εn␈↓ 	&␈εb
␈βπl␈↓ α␈εαquotien␈α␈t␈αdigit␈↓ βm␈ελq␈↓ ∧π␈εα;␈αcf.␈αFig.␈α6.)
␈βπz␈↓ βz␈εj
␈βλ'␈↓ ↓H␈ε∩D3.␈↓ α␈εα[Calculate␈↓ β5␈εα∂␈↓ β5␈ελq␈↓ βF␈εα.]␈α∪If␈↓ ∧∞␈ελu␈↓ ∧:␈εα=␈↓ ∧h␈ελv␈↓ ¬ε␈εα,␈α
set␈↓ ¬N␈εα∂␈↓ ¬O␈ελq␈↓ ¬i␈ε⊗ ␈↓ ε↔␈ελb␈↓ ε*␈ε⊗␈␈εα␈α¬1;␈α
otherwise␈α
set␈↓ λK␈εα∂␈↓ λL␈ελq␈↓ λf␈ε⊗ ␈α
b␈εα(␈↓ 	.␈ελu␈↓ 	P␈ελb␈↓ 	c␈εα+␈↓ 
␈ελu␈↓ 
X␈εα)/␈↓ 
v␈ελv␈↓ ∀␈ε⊗c␈εα.
␈βλ4␈↓ ∧#␈εj␈↓ ∧x␈ε¬1␈↓ 	C␈εj␈↓ 
 ␈εj␈↓ 
-␈ε¬+1␈↓ ε␈ε¬1
␈βλR␈↓ α␈εαNo␈α␈w␈α∞test␈α∞if␈↓ βL␈ελv␈↓ βj␈εα∂␈↓ βk␈ελq␈↓ ∧λ␈εα>␈α
(␈↓ ∧E␈ελu␈↓ ∧f␈ελb␈↓ ∧}␈εα+␈↓ ¬+␈ελu␈↓ ε↓␈ε⊗␈␈↓ ε.␈εα∂␈↓ ε/␈ελq␈↓ ε?␈ελv␈↓ ε]␈εα)␈↓ εi␈ελb␈↓ π␈εα+␈↓ π.␈ελu␈↓ π{␈εα;␈α∞if␈α∞so,␈α∞decrease␈↓ 	}␈εα∂␈↓ 	␈␈ελq␈↓ 
≥␈εαby␈α∞1␈α
and
␈βλ←␈↓ β\␈ε¬2␈↓ ∧Y␈εj␈↓ ¬@␈εj␈↓ ¬M␈ε¬+1␈↓ εN␈ε¬1␈↓ πB␈εj␈↓ πO␈ε¬+2
␈βλ⎇␈↓ α␈εαrepeat␈αthis␈αtest.␈α(The␈αlatter␈αtest␈αdetermines␈αat␈αhigh␈αspeed␈αmost␈αof␈αthe␈αcases
␈β	(␈↓ α␈εαin␈αwhich␈α
the␈αtrial␈αvalue␈↓ ¬␈εα∂␈↓ ¬␈ελq␈↓ ¬(␈εαis␈αone␈αtoo␈α
large,␈αand␈αit␈α
eliminates␈ε∂␈αall␈εα␈αcases␈αwhere
␈β	S␈↓ α␈εα∂␈↓ α␈ελq␈↓ α(␈εαis␈αt␈α␈w␈α␈o␈αtoo␈αlarge;␈αsee␈αex␈α␈ercises␈α19,␈α20,␈α21.)
␈β
∞␈↓ ↓H␈ε∩D4.␈↓ α␈εα[Multiply␈α∂and␈α∂subtract.]␈α≡Replace␈α∂(␈↓ ε@␈ελu␈↓ εb␈ελu␈↓ π5␈εα.␈αε.␈αε.␈↓ πe␈ελu␈↓ λ5␈εα)␈↓ λ\␈εαby␈α∂(␈↓ 	∨␈ελu␈↓ 	A␈ελu␈↓ 
∀␈εα.␈αε.␈αε.␈↓ 
D␈ελu␈↓ ∀␈εα)
␈β
≠␈↓ εU␈εj␈↓ εv␈εj␈↓ π∧␈ε¬+␈α␈1␈↓ πy␈εj␈↓ λπ␈ε¬+␈↓ λ#␈εn␈↓ λA␈εb␈↓ 	4␈εj␈↓ 	V␈εj␈↓ 	c␈ε¬+1␈↓ 
X␈εj␈↓ 
f␈ε¬+␈↓ β␈εn␈↓  ␈εb
␈β
9␈↓ α␈εαmin␈α␈us␈↓ αu␈εα∂␈↓ αv␈ελq␈↓ β∪␈εαtimes␈α
(␈↓ ∧␈ελv␈↓ ∧≡␈ελv␈↓ ∧C␈εα.␈αε.␈αε.␈↓ ∧s␈ελv␈↓ ¬∀␈εα)␈↓ ¬,␈εα.␈α⊂This␈α
step␈α
(analogous␈α
to␈α
steps␈α
M3,␈α
M4,␈α
and␈α
M5
␈β
F␈↓ ∧⊂␈ε¬1␈↓ ∧.␈ε¬2␈↓ ¬α␈εn␈↓ ¬ ␈εb
␈β
d␈↓ α␈εαof␈αAlgorithm␈αM)␈αconsists␈αof␈αa␈αsimple␈αm␈α␈ultiplication␈αby␈αa␈αone-place␈αn␈α␈um␈α␈ber,
␈β∂␈↓ α␈εαcom␈α␈bined␈α
with␈α
a␈αsubtraction.␈αThe␈α
digits␈α(␈↓ π∀␈ελu␈↓ π5␈εα,␈↓ πE␈ελu␈↓ λ∩␈εα,␈↓ λ"␈εα.␈αε.␈αε.␈↓ λR␈εα,␈↓ λb␈ελu␈↓ 	3␈εα)␈α
should␈α
be␈α
k␈α␈ept
␈β≥␈↓ π(␈εj␈↓ πZ␈εj␈↓ πg␈ε¬+1␈↓ λw␈εj␈↓ 	∧␈ε¬+␈↓ 	!␈εn
␈β:␈↓ α␈εαpositiv␈α␈e;␈α∪if␈α⊂the␈α⊃result␈α⊃of␈α⊂this␈α⊃step␈α⊂is␈α⊃actually␈α⊂negativ␈α␈e,␈α∩(␈↓ 	∨␈ελu␈↓ 	A␈ελu␈↓ 
∀␈εα.␈αε.␈αε.␈↓ 
D␈ελu␈↓ ∀␈εα)
␈βH␈↓ 	4␈εj␈↓ 	V␈εj␈↓ 	c␈ε¬+1␈↓ 
X␈εj␈↓ 
f␈ε¬+␈↓ β␈εn␈↓  ␈εb
␈βa␈↓ εY␈εn␈↓ εk␈ε¬+␈α␈1
␈βf␈↓ α␈εαshould␈αbe␈αleft␈αas␈αthe␈αtrue␈αvalue␈αplus␈↓ εJ␈ελb␈↓ π⊗␈εα,␈αi.e.,␈αas␈αthe␈↓ λW␈ελb␈↓ λf␈εα's␈αcomplemen␈α␈t␈αof␈αthe
␈β⊃␈↓ α␈εαtrue␈αvalue,␈αand␈αa␈α\borro␈α␈w"␈αto␈αthe␈αleft␈αshould␈αbe␈αremem␈α␈bered.
␈βK␈↓ ↓H␈ε∩D5.␈↓ α␈εα[Test␈α∞remainder.]␈α≤Set␈↓ ∧w␈ελq␈↓ ¬≡␈ε⊗ ␈↓ ¬N␈εα∂␈↓ ¬N␈ελq␈↓ ¬←␈εα.␈α⊂If␈α∞the␈α
result␈α∞of␈α
step␈α∞D4␈α
was␈α∞negativ␈α␈e,␈α∞go␈α
to
␈βY␈↓ ¬∧␈εj
␈βv␈↓ α␈εαstep␈αD6;␈αotherwise␈αgo␈αon␈αto␈αstep␈αD7.
␈β
1␈↓ ↓H␈ε∩D6.␈↓ α␈εα[Add␈α
back.]␈α∪(The␈α	probability␈α
that␈α	this␈α
step␈α	is␈α
necessary␈α	is␈α
v␈α␈ery␈α	small,␈α
on␈α	the
␈β
\␈↓ α␈εαorder␈α
of␈α∞only␈α
3/␈↓ ∧␈ελb␈↓ ∧~␈εα,␈α∞see␈α
ex␈α␈ercise␈α
21;␈α∞test␈α
data␈α
that␈α∞activates␈α
this␈α
step␈α
should
␈β∞π␈↓ α␈εαtherefore␈α∞be␈α
speci|cally␈α
con␈α␈triv␈α␈ed␈α∞when␈α
debugging.)␈α⊃Decrease␈↓ 	k␈ελq␈↓ 
∪␈εαby␈α∞1,␈α
and
␈β∞∀␈↓ 	x␈εj
␈β∞2␈↓ α␈εαadd␈α	(0␈↓ αm␈ελv␈↓ β␈ελv␈↓ β/␈εα.␈αε.␈αε.␈↓ β←␈ελv␈↓ ∧↓␈εα)␈↓ ∧"␈εαto␈α	(␈↓ ∧W␈ελu␈↓ ∧y␈ελu␈↓ ¬F␈ελu␈↓ ε→␈εα.␈αε.␈αε.␈↓ εI␈ελu␈↓ π→␈εα)␈↓ π1␈εα.␈α(A␈α	carry␈α	will␈α	occur␈α	to␈α	the␈α	left␈αλof
␈β∞@␈↓ α⎇␈ε¬1␈↓ β≠␈ε¬2␈↓ βo␈εn␈↓ ∧
␈εb␈↓ ∧k␈εj␈↓ ¬
␈εj␈↓ ¬~␈ε¬+1␈↓ ¬Z␈εj␈↓ ¬g␈ε¬+2␈↓ ε]␈εj␈↓ εj␈ε¬+␈↓ ππ␈εn␈↓ π%␈εb
␈β∞]␈↓ α␈ελu␈↓ α.␈εα,␈α
and␈α
it␈α
should␈α
be␈α
ignored␈α
since␈α
it␈α
cancels␈α
with␈α
the␈α
\borro␈α␈w"␈α
that␈α	occurred
␈β∞k␈↓ α!␈εj
␈β∂	␈↓ α␈εαin␈αD4.)
␈β∂C␈↓ ↓H␈ε∩D7.␈↓ α␈εα[Loop␈αon␈↓ β$␈ελj␈↓ β4␈εα.]␈α~Increase␈↓ ∧l␈ελj␈↓ ¬λ␈εαby␈αone.␈αNo␈α␈w␈αif␈↓ ε⎇␈ελj␈↓ π↔␈ε⊗∀␈↓ πE␈ελm␈↓ πe␈εα,␈αgo␈αback␈αto␈αD3.
␈β∂⎇␈↓ ↓H␈ε∩D8.␈↓ α␈εα[Unnormalize.]␈α No␈α␈w␈α⊂(␈↓ ∧s␈ελq␈↓ ¬∂␈ελq␈↓ ¬0␈εα.␈αε.␈αε.␈↓ ¬`␈ελq␈↓ επ␈εα)␈↓ ε/␈εαis␈α⊂the␈α⊂desired␈α⊂quotien␈α␈t,␈α⊃and␈α⊂the␈α∂desired
␈β⊂␈↓ ¬␈ε¬0␈↓ ¬≤␈ε¬1␈↓ ¬m␈εm␈↓ ε∪␈εb
␈β⊂(␈↓ α␈εαremainder␈αmay␈αbe␈αobtained␈αby␈αdividing␈α(␈↓ π⊗␈ελu␈↓ πv␈εα.␈αε.␈αε.␈↓ λ&␈ελu␈↓ 	β␈εα)␈↓ 	'␈εαby␈↓ 	[␈ελd␈↓ 	o␈εα.
␈β⊂-␈↓ 
!␈∧⊂-
!≠∂
␈β⊂6␈↓ π+␈εm␈↓ πE␈ε¬+␈α␈1␈↓ λ:␈εm␈↓ λT␈ε¬+␈↓ λq␈εn␈↓ 	∂␈εb
␈β⊂q␈↓ α␈εαThe␈α
represen␈α␈tation␈α
of␈αAlgorithm␈α
D␈α
as␈α
a␈ε∃␈αMIX␈εα␈αprogram␈α
has␈α
sev␈α␈eral␈α
poin␈α␈ts␈αof
␈β⊃≤␈↓ ↓H␈εαin␈α␈terest:
␈β∪(

␈β↓Y␈↓ ↓H␈εα256␈↓ α=␈ε∞A␈α␈RITH␈α␈METIC␈εα␈↓ 
b4.3.1
␈βα&␈↓ ↓H␈ε∩Program␈αD␈εα␈α(␈ε∂Division␈αof␈αnonnegativ␈α␈e␈α
in␈α␈tegers␈↓ πβ␈εα)␈ε∩.␈εα␈α↔The␈αcon␈α␈v␈α␈en␈α␈tions␈αof␈α
this␈αprogram
␈βαQ␈↓ ↓H␈εαare␈αanalogous␈α
to␈αProgram␈α
A␈↓ ¬∧␈εα;␈↓ ¬≠␈εαrI␈↓ ¬5␈εα1␈ε⊗␈α⊃␈↓ ε↓␈ελi␈↓ ε∂␈εα,␈↓ ε%␈εαrI␈↓ ε?␈εα2␈ε⊗␈α⊃␈↓ π␈ελj␈↓ π$␈ε⊗␈␈↓ πP␈ελm␈↓ πp␈εα,␈↓ λπ␈εαrI␈↓ λ!␈εα3␈ε⊗␈α⊃␈↓ λm␈ελi␈↓ 	β␈εα+␈↓ 	/␈ελj␈↓ 	@␈εα.␈α
Steps␈α
D1␈αand
␈βα⎇␈↓ ↓H␈εαD8␈αhav␈α␈e␈αbeen␈αleft␈αas␈αex␈α␈ercises.
␈ββM␈↓ α-␈ε∃D1␈↓ β␈ε∃J␈α␈OV␈↓ β|␈ε∃OF␈α␈LO
␈ββP␈↓ ↓Z␈ε	0␈α␈01␈↓ ε&␈εβ1␈↓ πG␈ε⊂D1␈α␈.␈αNo␈α␈rmalize.
␈ββj␈↓ πG␈∧βjπGα↓]
␈ββw␈↓ ↓e␈ε↔↓␈αε↓␈α¬↓␈↓ πG␈εβ(S␈α␈ee␈αex␈α␈e␈α␈rcise␈α25␈α␈)
␈β∧≤␈↓ α-␈ε∃D2␈↓ β␈ε∃E␈α␈NN2␈↓ β|␈ε∃M
␈β∧∨␈↓ ↓Z␈ε	0␈α␈39␈↓ ε&␈εβ1␈↓ πG␈ε⊂D2␈α␈.␈αIn␈α␈i␈α↓tia␈α␈l␈α↓ize␈↓ 	∂␈ε	j␈↓ 	≡␈ε⊂.
␈β∧9␈↓ πG␈∧∧9πGα↓H␈↓ 	⊗␈∧∧9	⊗α⊃
␈β∧D␈↓ β␈ε∃S␈α␈TZ␈↓ β|␈ε∃V
␈β∧G␈↓ ↓Z␈ε	0␈α␈40␈↓ ε&␈εβ1␈↓ πG␈εβS␈α␈et␈↓ λ␈ε	v␈↓ λ%␈ε↔ ␈εβ␈α	0,␈αfor␈αcon␈α}v␈α␈e␈α␈nienc␈α␈e␈αin␈αD4.
␈β∧Q␈↓ λ∂␈εε0
␈β∧k␈↓ α-␈ε∃D3␈↓ β␈ε∃L␈α␈DA␈↓ β|␈ε∃U+␈α␈M,2␈α␈(1:␈α␈5)
␈β∧n␈↓ ↓Z␈ε	0␈α␈41␈↓ ¬|␈ε	M␈↓ ε&␈εβ+␈αλ1␈↓ πG␈ε⊂D3␈α␈.␈αCa␈α␈l␈α↓c␈α␈ulate␈↓ 	≠␈εβ∂␈↓ 	≤␈ε	q␈↓ 	5␈ε⊂.
␈β¬λ␈↓ πG␈∧¬λπGα↓↑␈↓ 	2␈∧¬λ	2α
␈β¬∪␈↓ β␈ε∃L␈α␈DX␈↓ β|␈ε∃U+␈α␈M+1␈α␈,2
␈β¬⊗␈↓ ↓Z␈ε	0␈α␈42␈↓ ¬|␈ε	M␈↓ ε&␈εβ+␈αλ1␈↓ πG␈εβrAX␈↓ λ
␈ε↔ ␈↓ λ8␈ε	u␈↓ λW␈ε	b␈↓ λk␈εβ+␈↓ 	∀␈ε	u␈↓ 	Y␈εβ.
␈β¬ ␈↓ λK␈εj␈↓ 	'␈εj␈↓ 	3␈εε+␈α↓1
␈β¬:␈↓ β␈ε∃D␈α␈IV␈↓ β|␈ε∃V+␈α␈1
␈β¬=␈↓ ↓Z␈ε	0␈α␈43␈↓ ¬|␈ε	M␈↓ ε&␈εβ+␈αλ1␈↓ πG␈εβrA␈↓ πu␈ε↔ ␈α
b␈↓ λ-␈ε	r␈↓ λ;␈ε	A␈↓ λQ␈ε	X␈↓ λm␈εβ/␈↓ λ}␈ε	v␈↓ 	→␈ε↔c␈εβ.
␈β¬H␈↓ 	␈εε1
␈β¬b␈↓ β␈ε∃J␈α␈OV␈↓ β|␈ε∃1F
␈β¬e␈↓ ↓Z␈ε	0␈α␈44␈↓ ¬|␈ε	M␈↓ ε&␈εβ+␈αλ1␈↓ πG␈εβJ␈α␈ump␈α
i␈α↓f␈αq␈α␈uotien␈α}t␈↓ 	C␈εβ=␈↓ 	n␈ε	b␈↓ 	{␈εβ.
␈βε
␈↓ β␈ε∃S␈α␈TA␈↓ β|␈ε∃QH␈α␈AT
␈βε
␈↓ ↓Z␈ε	0␈α␈45␈↓ ¬|␈ε	M␈↓ ε&␈εβ+␈αλ1␈↓ πF␈εβ∂␈↓ πG␈ε	q␈↓ π←␈ε↔ ␈↓ λ	␈εβrA␈↓ λ.␈εβ.
␈βε1␈↓ β␈ε∃S␈α␈TX␈↓ β|␈ε∃RH␈α␈AT
␈βε4␈↓ ↓Z␈ε	0␈α␈46␈↓ ¬|␈ε	M␈↓ ε&␈εβ+␈αλ1␈↓ πF␈εβ∂␈↓ πG␈ε	r␈↓ π←␈ε↔ ␈↓ λ	␈ε	u␈↓ λ(␈ε	b␈↓ λ=␈εβ+␈↓ λf␈ε	u␈↓ 	2␈ε↔␈␈↓ 	Z␈εβ∂␈↓ 	[␈ε	q␈↓ 	j␈ε	v
␈βε?␈↓ λ≤␈εj␈↓ λy␈εj␈↓ 	¬␈εε+1␈↓ 	x␈εε1
␈βεY␈↓ β␈ε∃J␈α␈MP␈↓ β|␈ε∃2F
␈βε\␈↓ ↓Z␈ε	0␈α␈47␈↓ ¬|␈ε	M␈↓ ε&␈εβ+␈αλ1␈↓ λ∂␈εβ=␈α	(␈↓ λD␈ε	u␈↓ λd␈ε	b␈↓ λx␈εβ+␈↓ 	!␈ε	u␈↓ 	f␈εβ)␈↓ 	w␈εβm␈α␈od␈↓ 
;␈ε	v␈↓ 
V␈εβ.
␈βεf␈↓ λX␈εj␈↓ 	4␈εj␈↓ 	@␈εε+1␈↓ 
J␈εε1
␈βπ␈↓ α-␈ε∃1H␈↓ β␈ε∃L␈α␈DX␈↓ β|␈ε∃WM␈α␈1
␈βπβ␈↓ ↓Z␈ε	0␈α␈48␈↓ πG␈εβrX␈↓ πu␈ε↔ ␈↓ λ ␈ε	b␈↓ λ4␈ε↔␈␈εβ␈αλ1.
␈βπ(␈↓ β␈ε∃L␈α␈DA␈↓ β|␈ε∃U+␈α␈M+1␈α␈,2
␈βπ+␈↓ ↓Z␈ε	0␈α␈49␈↓ πG␈εβrA␈↓ πu␈ε↔ ␈↓ λ ␈ε	u␈↓ λe␈εβ.␈α(Here␈↓ 	R␈ε	u␈↓ 	z␈εβ=␈↓ 
%␈ε	v␈↓ 
@␈εβ.)
␈βπ6␈↓ λ3␈εj␈↓ λ?␈εε+1␈↓ 	e␈εj␈↓ 
3␈εε1
␈βπP␈↓ β␈ε∃J␈α␈MP␈↓ β|␈ε∃4F
␈βπS␈↓ ↓Z␈ε	0␈α␈50
␈βπw␈↓ α-␈ε∃3H␈↓ β␈ε∃L␈α␈DX␈↓ β|␈ε∃QH␈α␈AT
␈βπz␈↓ ↓Z␈ε	0␈α␈51␈↓ ε"␈ε	E
␈βλ∨␈↓ β␈ε∃D␈α␈ECX␈↓ β|␈ε∃1
␈βλ"␈↓ ↓Z␈ε	0␈α␈52␈↓ ε"␈ε	E␈↓ πG␈εβDec␈α␈rease␈↓ λQ␈εβ∂␈↓ λR␈ε	q␈↓ λk␈εβby␈αo␈α␈ne.
␈βλF␈↓ β␈ε∃L␈α␈DA␈↓ β|␈ε∃RH␈α␈AT
␈βλI␈↓ ↓Z␈ε	0␈α␈53␈↓ ε"␈ε	E␈↓ πG␈εβAd␈α␈just␈↓ λ3␈εβ∂␈↓ λ4␈ε	r␈↓ λN␈εβa␈α␈ccord␈α␈ing␈α␈l␈α↓y␈α␈:
␈βλn␈↓ α-␈ε∃4H␈↓ β␈ε∃S␈α␈TX␈↓ β|␈ε∃QH␈α␈AT
␈βλq␈↓ ↓Z␈ε	0␈α␈54␈↓ ε"␈ε	E␈↓ πF␈εβ∂␈↓ πG␈ε	q␈↓ π←␈ε↔ ␈↓ λ	␈εβrX␈↓ λ.␈εβ.
␈β	⊗␈↓ β␈ε∃A␈α␈DD␈↓ β|␈ε∃V+␈α␈1
␈β	→␈↓ ↓Z␈ε	0␈α␈55␈↓ ε"␈ε	E␈↓ πG␈εβrA␈↓ πu␈ε↔ ␈↓ λ ␈εβrA␈↓ λL␈εβ+␈↓ λu␈ε	v␈↓ 	⊂␈εβ.
␈β	#␈↓ 	β␈εε1
␈β	=␈↓ β␈ε∃J␈α␈OV␈↓ β|␈ε∃D4
␈β	@␈↓ ↓Z␈ε	0␈α␈56␈↓ ε"␈ε	E␈↓ πG␈εβ(If␈↓ πq␈εβ∂␈↓ πs␈εβr␈↓ λ␈εβwi␈α↓ll␈αbe␈ε↔␈α∃␈↓ 	!␈ε	b␈↓ 	.␈εβ,␈↓ 	C␈ε	v␈↓ 	]␈εβ∂␈↓ 	↑␈ε	q␈↓ 	x␈εβwill␈αb␈α␈e␈α<␈↓ 
␈εβ∂␈↓ ∞␈ε	r␈↓ ≤␈ε	b␈↓ *␈εβ.)
␈β	K␈↓ 	Q␈εε2
␈β	e␈↓ β␈ε∃S␈α␈TA␈↓ β|␈ε∃RH␈α␈AT
␈β	h␈↓ ↓Z␈ε	0␈α␈57␈↓ ε"␈ε	E␈↓ πF␈εβ∂␈↓ πG␈ε	r␈↓ π←␈ε↔ ␈↓ λ	␈εβrA␈↓ λ.␈εβ.
␈β
␈↓ β␈ε∃L␈α␈DA␈↓ β|␈ε∃QH␈α␈AT
␈β
∂␈↓ ↓Z␈ε	0␈α␈58␈↓ ε"␈ε	E
␈β
4␈↓ α-␈ε∃2H␈↓ β␈ε∃M␈α␈UL␈↓ β|␈ε∃V+␈α␈2
␈β
7␈↓ ↓Z␈ε	0␈α␈59␈↓ ¬Y␈ε	M␈↓ εβ␈εβ+␈↓ ε+␈ε	E␈↓ εJ␈εβ+␈αλ1
␈β
\␈↓ β␈ε∃C␈α␈MPA␈↓ β|␈ε∃RH␈α␈AT
␈β
←␈↓ ↓Z␈ε	0␈α␈60␈↓ ¬Y␈ε	M␈↓ εβ␈εβ+␈↓ ε+␈ε	E␈↓ εJ␈εβ+␈αλ1␈↓ πG␈εβTest␈αif␈↓ λ2␈ε	v␈↓ λM␈εβ∂␈↓ λM␈ε	q␈↓ λe␈ε↔∀␈↓ 	∂␈εβ∂␈↓ 	⊂␈ε	r␈↓ 	∨␈ε	b␈↓ 	3␈εβ+␈↓ 	\␈ε	u␈↓ 
!␈εβ.
␈β
i␈↓ λA␈εε2␈↓ 	o␈εj␈↓ 	{␈εε+2
␈ββ␈↓ β␈ε∃J␈α␈L␈↓ β|␈ε∃D4
␈βε␈↓ ↓Z␈ε	0␈α␈61␈↓ ¬Y␈ε	M␈↓ εβ␈εβ+␈↓ ε+␈ε	E␈↓ εJ␈εβ+␈αλ1
␈β+␈↓ β␈ε∃J␈α␈G␈↓ β|␈ε∃3B
␈β.␈↓ ↓Z␈ε	0␈α␈62␈↓ ε"␈ε	E
␈βR␈↓ β␈ε∃C␈α␈MPX␈↓ β|␈ε∃U+␈α␈M+2␈α␈,2
␈βU␈↓ ↓Z␈ε	0␈α␈63
␈βz␈↓ β␈ε∃J␈α␈G␈↓ β|␈ε∃3B
␈β⎇␈↓ ↓Z␈ε	0␈α␈64␈↓ πG␈εβIf␈αno␈α␈t,␈↓ λ,␈εβ∂␈↓ λ-␈ε	q␈↓ λF␈εβi␈α↓s␈αto␈α␈o␈αlarge␈α␈.
␈β"␈↓ α-␈ε∃D4␈↓ β␈ε∃E␈α␈NTX␈↓ β|␈ε∃1
␈β%␈↓ ↓Z␈ε	0␈α␈65␈↓ ¬|␈ε	M␈↓ ε&␈εβ+␈αλ1␈↓ πG␈ε⊂D4␈α␈.␈αM␈α␈ulti␈↓ λU␈ε⊂p␈↓ λh␈ε⊂l␈↓ λq␈ε⊂y␈↓ 	∂␈ε⊂a␈α␈nd␈α
sub␈α␈tract.
␈β>␈↓ πG␈∧>πGα↓∂␈↓ λ]␈∧>λ]α_␈↓ λ|␈∧>λ|α↓U
␈βI␈↓ β␈ε∃E␈α␈NT1␈↓ β|␈ε∃N
␈βL␈↓ ↓Z␈ε	0␈α␈66␈↓ ¬|␈ε	M␈↓ ε&␈εβ+␈αλ1␈↓ πG␈ε	i␈↓ π]␈ε↔ ␈↓ λπ␈ε	n␈↓ λ≠␈εβ.
␈βq␈↓ β␈ε∃E␈α␈NT3␈↓ β|␈ε∃M+␈α␈N,2
␈βt␈↓ ↓Z␈ε	0␈α␈67␈↓ ¬|␈ε	M␈↓ ε&␈εβ+␈αλ1␈↓ πG␈εβ(␈↓ πR␈ε	i␈↓ πf␈εβ+␈↓ λ∂␈ε	j␈↓ λ≡␈εβ)␈ε↔␈α	 ␈εβ␈α
(␈↓ λh␈ε	n␈↓ 	β␈εβ+␈↓ 	,␈ε	j␈↓ 	;␈εβ).
␈β
_␈↓ α-␈ε∃2H␈↓ β␈ε∃S␈α␈TX␈↓ β|␈ε∃CA␈α␈RRY
␈β
≠␈↓ ↓Z␈ε	0␈α␈68␈↓ ¬6␈εβ(␈↓ ¬A␈ε	M␈↓ ¬k␈εβ+␈αλ1)(␈↓ ε;␈ε	N␈↓ εa␈εβ+␈αλ1␈α␈)␈↓ πG␈εβ(Here␈α1␈ε↔␈απ␈␈↓ λ`␈ε	b␈↓ λw␈εβ<␈↓ 	!␈εβrX␈↓ 	P␈ε↔∀␈εβ␈α	+␈α↓1␈α␈.)
␈β
@␈↓ β␈ε∃L␈α␈DAN␈↓ β|␈ε∃V,␈α␈1
␈β
C␈↓ ↓Z␈ε	0␈α␈69␈↓ ¬6␈εβ(␈↓ ¬A␈ε	M␈↓ ¬k␈εβ+␈αλ1)(␈↓ ε;␈ε	N␈↓ εa␈εβ+␈αλ1␈α␈)
␈β
h␈↓ β␈ε∃M␈α␈UL␈↓ β|␈ε∃QH␈α␈AT
␈β
k␈↓ ↓Z␈ε	0␈α␈70␈↓ ¬6␈εβ(␈↓ ¬A␈ε	M␈↓ ¬k␈εβ+␈αλ1)(␈↓ ε;␈ε	N␈↓ εa␈εβ+␈αλ1␈α␈)␈↓ πG␈εβrAX␈↓ λ
␈ε↔ ␈α
␈␈↓ λX␈εβ∂␈↓ λY␈ε	q␈↓ λh␈ε	v␈↓ 	↓␈εβ.
␈β
u␈↓ λv␈εi
␈β∞∂␈↓ β␈ε∃S␈α␈LC␈↓ β|␈ε∃5
␈β∞∩␈↓ ↓Z␈ε	0␈α␈71␈↓ ¬6␈εβ(␈↓ ¬A␈ε	M␈↓ ¬k␈εβ+␈αλ1)(␈↓ ε;␈ε	N␈↓ εa␈εβ+␈αλ1␈α␈)␈↓ πG␈εβIn␈α␈t␈α␈ercha␈α␈ng␈α␈e␈↓ λ{␈εβrA␈↓ 	)␈ε↔$␈↓ 	T␈εβrX␈↓ 	y␈εβ.
␈β∞7␈↓ β␈ε∃A␈α␈DD␈↓ β|␈ε∃CA␈α␈RRY
␈β∞:␈↓ ↓Z␈ε	0␈α␈72␈↓ ¬6␈εβ(␈↓ ¬A␈ε	M␈↓ ¬k␈εβ+␈αλ1)(␈↓ ε;␈ε	N␈↓ εa␈εβ+␈αλ1␈α␈)␈↓ πG␈εβAd␈α␈d␈αth␈α␈e␈αcon␈α}tri␈α↓b␈α␈ut␈α␈i␈α↓o␈α␈n␈αfrom␈αt␈α␈he
␈β∞↑␈↓ β␈ε∃J␈α␈NOV␈↓ β|␈ε∃*+␈α␈2
␈β∞a␈↓ ↓Z␈ε	0␈α␈73␈↓ ¬6␈εβ(␈↓ ¬A␈ε	M␈↓ ¬k␈εβ+␈αλ1)(␈↓ ε;␈ε	N␈↓ εa␈εβ+␈αλ1␈α␈)␈↓ λ∂␈εβd␈α␈i␈α↓g␈α␈it␈αt␈α␈o␈αthe␈αrig␈α␈h␈α␈t,␈αplus␈α1␈α␈.
␈β∂ε␈↓ β␈ε∃D␈α␈ECX␈↓ β|␈ε∃1
␈β∂	␈↓ ↓Z␈ε	0␈α␈74␈↓ ε ␈ε	K␈↓ πG␈εβIf␈αsum␈α
i␈α↓s␈ε↔␈α∀␈α	␈␈↓ 	≤␈ε	b␈↓ 	)␈εβ,␈αcarry␈ε↔␈α
␈␈εβ1.
␈β∂.␈↓ β␈ε∃A␈α␈DD␈↓ β|␈ε∃U,␈α␈3
␈β∂1␈↓ ↓Z␈ε	0␈α␈77␈↓ ¬6␈εβ(␈↓ ¬A␈ε	M␈↓ ¬k␈εβ+␈αλ1)(␈↓ ε;␈ε	N␈↓ εa␈εβ+␈αλ1␈α␈)␈↓ πG␈εβAd␈α␈d␈↓ λ∂␈ε	u␈↓ λR␈εβ.
␈β∂;␈↓ λ"␈εi␈↓ λ-␈εε+␈↓ λF␈εj
␈β∂U␈↓ β␈ε∃A␈α␈DD␈↓ β|␈ε∃WM␈α␈1
␈β∂X␈↓ ↓Z␈ε	0␈α␈76␈↓ ¬6␈εβ(␈↓ ¬A␈ε	M␈↓ ¬k␈εβ+␈αλ1)(␈↓ ε;␈ε	N␈↓ εa␈εβ+␈αλ1␈α␈)␈↓ πG␈εβAd␈α␈d␈↓ λ∂␈ε	b␈↓ λ$␈ε↔␈␈εβ␈απ1␈αto␈αfor␈α␈ce␈α+␈αsig␈α␈n.
␈β∂⎇␈↓ β␈ε∃J␈α␈NOV␈↓ β|␈ε∃*+␈α␈2
␈β⊂␈↓ ↓Z␈ε	0␈α␈77␈↓ ¬6␈εβ(␈↓ ¬A␈ε	M␈↓ ¬k␈εβ+␈αλ1)(␈↓ ε;␈ε	N␈↓ εa␈εβ+␈αλ1␈α␈)␈↓ πG␈εβIf␈αno␈α
o␈α␈v␈α␈e␈α␈r⎇o␈α␈w,␈αcar␈α␈ry␈ε↔␈α␈␈εβ1.
␈β⊂#␈↓ ε8␈ε~0
␈β⊂$␈↓ β␈ε∃I␈α␈NCX␈↓ β|␈ε∃1
␈β⊂'␈↓ ↓Z␈ε	0␈α␈78␈↓ ε≥␈ε	K␈↓ πG␈εβrX␈↓ πu␈ε↔⊃␈↓ λ ␈εβc␈α␈arry␈↓ λs␈εβ+␈αλ1␈α␈.
␈β⊂L␈↓ β␈ε∃S␈α␈TA␈↓ β|␈ε∃U,␈α␈3
␈β⊂O␈↓ ↓Z␈ε	0␈α␈79␈↓ ¬6␈εβ(␈↓ ¬A␈ε	M␈↓ ¬k␈εβ+␈αλ1)(␈↓ ε;␈ε	N␈↓ εa␈εβ+␈αλ1␈α␈)␈↓ πG␈ε	u␈↓ λ∪␈ε↔ ␈↓ λ>␈εβrA␈↓ λn␈εβ(ma␈α␈y␈αb␈α␈e␈αmin␈α␈u␈α␈s␈αzero).
␈β⊂Z␈↓ πZ␈εi␈↓ πe␈εε+␈↓ π}␈εj
␈β⊂t␈↓ β␈ε∃D␈α␈EC1␈↓ β|␈ε∃1
␈β⊂w␈↓ ↓Z␈ε	0␈α␈80␈↓ ¬6␈εβ(␈↓ ¬A␈ε	M␈↓ ¬k␈εβ+␈αλ1)(␈↓ ε;␈ε	N␈↓ εa␈εβ+␈αλ1␈α␈)
␈β⊃≠␈↓ β␈ε∃D␈α␈EC3␈↓ β|␈ε∃1
␈β⊃≡␈↓ ↓Z␈ε	0␈α␈81␈↓ ¬6␈εβ(␈↓ ¬A␈ε	M␈↓ ¬k␈εβ+␈αλ1)(␈↓ ε;␈ε	N␈↓ εa␈εβ+␈αλ1␈α␈)
␈β∪(

␈β↓Y␈↓ ↓H␈εα4.3.1␈ε∞␈↓ π⊗TH␈α␈E␈α	CLASSICA␈α␈L␈α	AL␈α␈GORITH␈α␈MS␈↓ 
v␈εα257
␈βα'␈↓ β␈ε∃J␈α␈1NN␈↓ β|␈ε∃2B
␈βα*␈↓ ↓Z␈ε	0␈α␈82␈↓ ¬6␈εβ(␈↓ ¬A␈ε	M␈↓ ¬k␈εβ+␈αλ1)(␈↓ ε;␈ε	N␈↓ εa␈εβ+␈αλ1␈α␈)␈↓ πG␈εβRep␈α␈eat␈αfo␈α␈r␈↓ λl␈ε	n␈↓ 	
␈ε↔∃␈↓ 	4␈ε	i␈↓ 	J␈ε↔∃␈εβ␈α
0␈α␈.
␈βαO␈↓ α-␈ε∃D5␈↓ β␈ε∃L␈α␈DA␈↓ β|␈ε∃QH␈α␈AT
␈βαR␈↓ ↓Z␈ε	0␈α␈83␈↓ ¬|␈ε	M␈↓ ε&␈εβ+␈αλ1␈↓ πG␈ε⊂D5␈α␈.␈αTest␈αre␈α␈main␈α␈der.
␈βαl␈↓ πG␈∧αlπGαα'
␈βαv␈↓ β␈ε∃S␈α␈TA␈↓ β|␈ε∃Q+␈α␈M,2
␈βαy␈↓ ↓Z␈ε	0␈α␈84␈↓ ¬|␈ε	M␈↓ ε&␈εβ+␈αλ1␈↓ πG␈εβS␈α␈et␈↓ λ␈ε	q␈↓ λ"␈ε↔ ␈↓ λK␈εβ∂␈↓ λL␈ε	q␈↓ λ[␈εβ.
␈ββ∧␈↓ λ␈εj
␈ββ≡␈↓ β␈ε∃J␈α␈XP␈↓ β|␈ε∃D7
␈ββ!␈↓ ↓Z␈ε	0␈α␈85␈↓ ¬|␈ε	M␈↓ ε&␈εβ+␈αλ1␈↓ πG␈εβ(Here␈↓ λ ␈εβrX␈↓ λN␈εβ=␈α	0␈αor␈α1,␈αsinc␈α␈e␈↓ 
3␈ε	v␈↓ 
X␈εβ=␈α	0.)
␈ββ,␈↓ 
B␈εε0
␈ββF␈↓ α-␈ε∃D6␈↓ β␈ε∃D␈α␈ECA␈↓ β|␈ε∃1
␈ββI␈↓ ↓Z␈ε	0␈α␈86␈↓ πG␈ε⊂D6␈α␈.␈αAd␈α␈d␈αb␈α␈ack␈α␈.
␈ββb␈↓ πG␈∧βbπGα↓U
␈ββm␈↓ β␈ε∃S␈α␈TA␈↓ β|␈ε∃Q+␈α␈M,2
␈ββp␈↓ ↓Z␈ε	0␈α␈87␈↓ πG␈εβS␈α␈et␈↓ λ␈ε	q␈↓ λ"␈ε↔ ␈↓ λK␈εβ∂␈↓ λL␈ε	q␈↓ λb␈ε↔␈␈εβ␈αλ1.
␈ββ{␈↓ λ␈εj
␈β∧∃␈↓ β␈ε∃E␈α␈NT1␈↓ β|␈ε∃N
␈β∧_␈↓ ↓Z␈ε	0␈α␈88␈↓ πG␈ε	i␈↓ π]␈ε↔ ␈↓ λπ␈ε	n␈↓ λ≠␈εβ.
␈β∧<␈↓ β␈ε∃E␈α␈NT3␈↓ β|␈ε∃M+␈α␈N,2
␈β∧?␈↓ ↓Z␈ε	0␈α␈89␈↓ πG␈εβ(␈↓ πR␈ε	i␈↓ πf␈εβ+␈↓ λ∂␈ε	j␈↓ λ≡␈εβ)␈ε↔␈α	 ␈εβ␈α
(␈↓ λh␈ε	n␈↓ 	β␈εβ+␈↓ 	,␈ε	j␈↓ 	;␈εβ).
␈β∧d␈↓ α-␈ε∃1H␈↓ β␈ε∃E␈α␈NTA␈↓ β|␈ε∃0
␈β∧g␈↓ ↓Z␈ε	0␈α␈90␈↓ πG␈εβ(Th␈α␈i␈α↓s␈αis␈αessen␈α}tiall␈α↓y␈α
Progra␈α␈m␈αA.)
␈β¬␈↓ α-␈ε∃2H␈↓ β␈ε∃A␈α␈DD␈↓ β|␈ε∃U,␈α␈3
␈β¬∂␈↓ ↓Z␈ε	0␈α␈91
␈β¬3␈↓ β␈ε∃A␈α␈DD␈↓ β|␈ε∃V,␈α␈1
␈β¬6␈↓ ↓Z␈ε	0␈α␈92
␈β¬[␈↓ β␈ε∃S␈α␈TA␈↓ β|␈ε∃U,␈α␈3
␈β¬↑␈↓ ↓Z␈ε	0␈α␈93
␈βεα␈↓ β␈ε∃D␈α␈EC1␈↓ β|␈ε∃1
␈βε¬␈↓ ↓Z␈ε	0␈α␈94
␈βε*␈↓ β␈ε∃D␈α␈EC3␈↓ β|␈ε∃1
␈βε-␈↓ ↓Z␈ε	0␈α␈95
␈βεR␈↓ β␈ε∃J␈α␈NOV␈↓ β|␈ε∃1B
␈βεU␈↓ ↓Z␈ε	0␈α␈96
␈βεy␈↓ β␈ε∃E␈α␈NTA␈↓ β|␈ε∃1
␈βε|␈↓ ↓Z␈ε	0␈α␈97
␈βπ!␈↓ β␈ε∃J␈α␈1NN␈↓ β|␈ε∃2B
␈βπ$␈↓ ↓Z␈ε	0␈α␈98
␈βπH␈↓ α-␈ε∃D7␈↓ β␈ε∃I␈α␈NC2␈↓ β|␈ε∃1
␈βπK␈↓ ↓Z␈ε	0␈α␈99␈↓ ¬|␈ε	M␈↓ ε&␈εβ+␈αλ1␈↓ πG␈ε⊂D7␈α␈.␈αLoo␈↓ λ=␈ε⊂p␈↓ λ[␈ε⊂o␈α␈n␈↓ 		␈ε	j␈↓ 	_␈ε⊂.
␈βπe␈↓ πG␈∧πeπGαw␈↓ λE␈∧πeλEαE␈↓ 	⊃␈∧πe	⊃α⊃
␈βπp␈↓ β␈ε∃J␈α␈2NP␈↓ β|␈ε∃D3
␈βπs␈↓ ↓Z␈ε	1␈α␈00␈↓ ¬|␈ε	M␈↓ ε&␈εβ+␈αλ1␈↓ πG␈εβRep␈α␈eat␈αfo␈α␈r␈α0␈ε↔␈α	∀␈↓ 	1␈ε	j␈↓ 	I␈ε↔∀␈↓ 	t␈ε	m␈↓ 
⊃␈εβ.
␈βλ_␈↓ α-␈ε∃D8
␈βλ≠␈↓ ↓Z␈ε	1␈α␈01␈↓ β␈ε↔↓␈α¬↓␈αε↓␈↓ πG␈εβ(S␈α␈ee␈αex␈α␈e␈α␈rcise␈α26␈α␈)
␈βλ≥␈↓ 	Y␈∧λ≥	Y≠∂
␈βλS␈↓ α␈εαNote␈αho␈α␈w␈αeasily␈αthe␈αrather␈αcomplex-appearing␈αcalculations␈αand␈αdecisions␈αof
␈βλ}␈↓ ↓H␈εαstep␈αD3␈αcan␈αbe␈αhandled␈αinside␈αthe␈αmachine.␈αNote␈αalso␈αthat␈αthe␈αprogram␈αfor␈αstep
␈β	)␈↓ ↓H␈εαD4␈α∂is␈α∞analogous␈α∂to␈α∂Program␈α∂M␈↓ ¬8␈εα,␈α⊂ex␈α␈cept␈α∞that␈α∂the␈α∂ideas␈α∂of␈α∂Program␈α∂S␈α∂hav␈α␈e␈α∞also
␈β	U␈↓ ↓H␈εαbeen␈αincorporated.
␈β
␈↓ α␈εαThe␈αrunning␈α
time␈αfor␈αProgram␈αD␈α
can␈αbe␈αestimated␈α
by␈αconsidering␈αthe␈α
quan-
␈β
&␈↓ ∧N␈ε→0
␈β
+␈↓ ↓H␈εαtities␈↓ α∨␈ελM␈↓ αE␈εα,␈↓ αX␈ελN␈↓ αz␈εα,␈↓ β∞␈ελE␈↓ β'␈εα,␈↓ β;␈ελK␈↓ βY␈εα,␈α
and␈↓ ∧0␈ελK␈↓ ∧←␈εαsho␈α␈wn␈α	in␈α	the␈α	program.␈α(These␈α	quan␈α␈tities␈α	ignore␈α	sev␈α␈eral
␈β
V␈↓ ↓H␈εαsituations␈αλthat␈αλoccur␈α	only␈αλwith␈αλv␈α␈ery␈α	lo␈α␈w␈αλprobability;␈α	for␈α	example,␈α	w␈α␈e␈αλmay␈αλassume
␈β↓␈↓ ↓H␈εαthat␈α∞lines␈α∞048↑050,␈α∂063↑064,␈α∂and␈α∂step␈α∞D6␈α∞are␈α∂nev␈α␈er␈α∞ex␈α␈ecuted.)␈α∪Here␈↓ 
↔␈ελM␈↓ 
G␈εα+␈α	1␈α∞is
␈β-␈↓ ↓H␈εαthe␈α
n␈α␈um␈α␈ber␈α
of␈α∞w␈α␈ords␈α
in␈α∞the␈α
quotien␈α␈t;␈↓ ε"␈ελN␈↓ εQ␈εαis␈α∞the␈α
n␈α␈um␈α␈ber␈α∞of␈α
w␈α␈ords␈α∞in␈α
the␈α
divisor;
␈βS␈↓ 
f␈ε→0
␈βX␈↓ ↓H␈ελE␈↓ ↓p␈εαis␈α⊂the␈α⊂n␈α␈um␈α␈ber␈α∂of␈α⊂times␈↓ ∧o␈εα∂␈↓ ∧p␈ελq␈↓ ¬⊂␈εαis␈α∂adjusted␈α⊂do␈α␈wn␈α␈wards␈α∂in␈α⊂step␈α∂D3;␈↓ 	Q␈ελK␈↓ 	}␈εαand␈↓ 
H␈ελK␈↓ 
|␈εαare
␈ββ␈↓ ↓H␈εαthe␈αn␈α␈um␈α␈ber␈αof␈αtimes␈αcertain␈α\carry"␈αadjustmen␈α␈ts␈αare␈αmade␈αduring␈αthe␈αm␈α␈ultiply-
␈β)␈↓ ε:␈ε→0
␈β.␈↓ ↓H␈εαsubtract␈αloop.␈αIf␈αw␈α␈e␈αassume␈αthat␈↓ ¬L␈ελK␈↓ ¬q␈εα+␈↓ ε≤␈ελK␈↓ εM␈εαis␈αappro␈α␈ximately␈α(␈↓ λj␈ελN␈↓ 	∪␈εα+␈απ1)(␈↓ 	h␈ελM␈↓ 
∀␈εα+␈απ1),␈αand
␈βV␈↓ ∧R␈ε¬1
␈βY␈↓ ↓H␈εαthat␈↓ α⊗␈ελE␈↓ α;␈εαis␈αappro␈α␈ximately␈↓ ∧d␈ελM␈↓ ¬
␈εα,␈αw␈α␈e␈αget␈αa␈αtotal␈αrunning␈αtime␈αof␈αappro␈α␈ximately
␈βj␈↓ ∧R␈∧j∧Rα∂
␈βl␈↓ ∧R␈ε¬2
␈β
$␈↓ ∧T␈εα30␈↓ ∧x␈ελM␈↓ ¬≥␈ελN␈↓ ¬G␈εα+␈αλ30␈↓ ε↔␈ελN␈↓ εA␈εα+␈αλ89␈↓ π⊃␈ελM␈↓ π>␈εα+␈αλ111
␈β
n␈↓ ↓H␈εαcy␈α␈cles,␈α
plus␈α
67␈↓ β%␈ελN␈↓ βK␈εα+␈αε235␈↓ ∧+␈ελM␈↓ ∧U␈εα+␈α¬4␈α
more␈α
if␈↓ ε∩␈ελd␈↓ ε0␈εα>␈α
1.␈α(The␈α
program␈α
segmen␈α␈ts␈α
of␈α	ex␈α␈ercises
␈β∞→␈↓ ↓H␈εα25␈απand␈απ26␈απare␈αλincluded␈απin␈απthese␈απtotals.)␈αWhen␈↓ εz␈ελM␈↓ π'␈εαand␈↓ πh␈ελN␈↓ λ⊃␈εαare␈απlarge,␈α	this␈απis␈απonly␈απabout
␈β∞E␈↓ ↓H␈εαsev␈α␈en␈α
percen␈α␈t␈α
longer␈αthan␈α
the␈α
time␈α
Program␈αM␈α
tak␈α␈es␈α
to␈αm␈α␈ultiply␈α
the␈α
quotien␈α␈t␈α
by
␈β∞p␈↓ ↓H␈εαthe␈αdivisor.
␈β∂≠␈↓ α␈εαFurther␈α∞commen␈α␈tary␈α
on␈α∞Algorithm␈α∞D␈α
appears␈α∞in␈α∞the␈α
ex␈α␈ercises␈α∞at␈α∞the␈α
close
␈β∂F␈↓ ↓H␈εαof␈αthis␈αsection.
␈β∂y␈↓ α␈εαIt␈αλis␈απpossible␈αλto␈απdebug␈αλprograms␈αλfor␈απm␈α␈ultiple-precision␈αλarithmetic␈απby␈αλusing␈απthe
␈β⊂%␈↓ ↓H␈εαm␈α␈ultiplication␈αand␈α
addition␈αroutines␈α
to␈αcheck␈α
the␈αresult␈α
of␈αthe␈α
division␈αroutine,
␈β⊂P␈↓ ↓H␈εαetc.␈αThe␈αfollo␈α␈wing␈αtype␈αof␈αtest␈αdata␈αis␈αoccasionally␈αuseful:
␈β⊃∀␈↓ ∧␈εm␈↓ ¬⊃␈εn␈↓ ε:␈εm␈↓ εT␈ε¬+␈↓ εq␈εn␈↓ πD␈εn␈↓ λ↔␈εm
␈β⊃~␈↓ βs␈εα(␈↓ β␈␈ελt␈↓ ∧.␈ε⊗␈␈εα␈αλ1)(␈↓ ¬∧␈ελt␈↓ ¬+␈ε⊗␈␈εα␈αλ1)␈α
=␈↓ ε-␈ελt␈↓ π␈ε⊗␈␈↓ π7␈ελt␈↓ π↑␈ε⊗␈␈↓ λ
␈ελt␈↓ λ9␈εα+␈αλ1.
␈β∪(

␈β↓Y␈↓ ↓H␈εα258␈↓ α=␈ε∞A␈α␈RITH␈α␈METIC␈εα␈↓ 
b4.3.1
␈βα(␈↓ ↓H␈εαIf␈↓ ↓l␈ελm␈↓ α∃␈εα<␈↓ αC␈ελn␈↓ αY␈εα,␈αthis␈αn␈α␈um␈α␈ber␈αhas␈αthe␈αradix-␈↓ ε∪␈ελt␈↓ ε,␈εαexpansion
␈ββ↓␈↓ α≠␈εα(␈↓ α'␈ελt␈↓ α<␈ε⊗␈␈εα␈αλ1)␈↓ β*␈εα.␈αε.␈αε.␈↓ βx␈εα(␈↓ ∧∧␈ελt␈↓ ∧~␈ε⊗␈␈εα␈αλ1)␈↓ ¬λ␈εα(␈↓ ¬∀␈ελt␈↓ ¬)␈ε⊗␈␈εα␈αλ2)␈↓ ε↔␈εα(␈↓ ε#␈ελt␈↓ ε8␈ε⊗␈␈εα␈αλ1)␈↓ π&␈εα.␈αε.␈αε.␈↓ πt␈εα(␈↓ λ␈ελt␈↓ λ∃␈ε⊗␈␈εα␈αλ1)␈↓ 	β␈εα0␈↓ 	9␈εα.␈αε.␈αε.␈↓ 
π␈εα0␈↓ 
=␈εα1;
␈ββ+␈↓ α≠␈ε↓|␈↓ β/␈ε↓{z␈↓ ∧S␈ε↓⎇␈↓ ε↔␈ε↓|␈↓ π*␈ε↓{␈α↓z␈↓ λN␈ε↓⎇␈↓ 	β␈ε↓|␈↓ 	=␈ε↓{␈α↓z␈↓ 
λ␈ε↓⎇
␈ββA␈↓ α,␈∧βAα,ε↓∧␈↓ βP␈∧βAβPε↓∧␈↓ ε'␈∧βAε'ε↓∧␈↓ πK␈∧βAπKε↓∧␈↓ 	∪␈∧βA	∪ε+␈↓ 	↑␈∧βA	↑ε+
␈ββW␈↓ αX␈ελm␈↓ α␈␈ε⊗␈␈εα␈αλ1␈αplaces␈↓ εQ␈ελn␈↓ εo␈ε⊗␈␈↓ π≠␈ελm␈↓ πF␈εαplaces␈↓ λf␈ελm␈↓ 	
␈ε⊗␈␈εα␈αλ1␈αplaces
␈β∧1␈↓ βN␈ε¬3␈↓ ∧c␈ε¬5
␈β∧6␈↓ ↓H␈εαfor␈α∂example,␈α∂(1␈↓ β<␈εα0␈↓ βg␈ε⊗␈␈εα␈α
1)(1␈↓ ∧Q␈εα0␈↓ ∧{␈ε⊗␈␈εα␈α
1)␈α∂=␈α∂99899001.␈α∀In␈α∂the␈α∂case␈α∂of␈α∂Program␈α∂D␈↓ 
T␈εα,␈α⊂it␈α∞is
␈β∧a␈↓ ↓H␈εαalso␈α
necessary␈αto␈α|nd␈α
some␈αtest␈αcases␈αthat␈α
cause␈αthe␈αrarely␈α
ex␈α␈ecuted␈αparts␈αof␈α
the
␈β¬␈↓ ↓H␈εαprogram␈α
to␈α∞be␈α
ex␈α␈ercised;␈α∂some␈α
portions␈α∞of␈α
that␈α∞program␈α
w␈α␈ould␈α∞probably␈α
nev␈α␈er
␈β¬8␈↓ ↓H␈εαget␈αtested␈αev␈α␈en␈αif␈αa␈αmillion␈αrandom␈αtest␈αcases␈αw␈α␈ere␈αtried.
␈β¬e␈↓ α␈εαNo␈α␈w␈αthat␈αw␈α␈e␈αhav␈α␈e␈αseen␈αho␈α␈w␈αto␈αoperate␈αwith␈αsigned-magnitude␈αn␈α␈um␈α␈bers,␈αlet
␈βε⊃␈↓ ↓H␈εαus␈αconsider␈α
what␈α
approach␈α
should␈αbe␈α
tak␈α␈en␈α
to␈α
the␈αsame␈α
problems␈α
when␈α
a␈αcom-
␈βε<␈↓ ↓H␈εαputer␈αwith␈αcomplemen␈α␈t␈αnotation␈αis␈αbeing␈αused.␈αFor␈αt␈α␈w␈α␈o's␈αcomplemen␈α␈t␈αand␈αones'
␈βεg␈↓ ↓H␈εαcomplemen␈α␈t␈α
notations,␈αit␈α
is␈α
best␈α
to␈αlet␈α
the␈α
radix␈↓ π:␈ελb␈↓ πR␈εαbe␈ε∂␈αone-half␈εα␈α
the␈α
w␈α␈ord␈αsize;␈α
th␈α␈us
␈βπ
␈↓ π8␈ε¬3␈α↓1
␈βπ∩␈↓ ↓H␈εαfor␈αa␈α
32-bit␈αcomputer␈α
w␈α␈ord␈αw␈α␈e␈αw␈α␈ould␈α
use␈↓ ε↑␈ελb␈↓ εx␈εα=␈↓ π&␈εα2␈↓ πb␈εαin␈αthe␈α
abo␈α␈v␈α␈e␈αalgorithms.␈α
The
␈βπ=␈↓ ↓H␈εαsign␈αbit␈α
of␈αall␈αbut␈α
the␈αmost␈α
signi|can␈α␈t␈αw␈α␈ord␈α
of␈αa␈α
m␈α␈ultiple-precision␈αn␈α␈um␈α␈ber␈αwill
␈βπi␈↓ ↓H␈εαbe␈αzero,␈αso␈αthat␈αno␈αanomalous␈αsign␈αcorrection␈αtak␈α␈es␈αplace␈αduring␈αthe␈αcomputer's
␈βλ∀␈↓ ↓H␈εαm␈α␈ultiplication␈α
and␈α	division␈α
operations.␈αIn␈α
fact,␈α
the␈α
basic␈α
meaning␈α
of␈α	complemen␈α␈t
␈βλ?␈↓ ↓H␈εαnotation␈α
requires␈α
that␈α
w␈α␈e␈α∞consider␈α
all␈α
but␈α
the␈α
most␈α∞signi|can␈α␈t␈α
w␈α␈ord␈α
to␈α
be␈α
non-
␈βλj␈↓ ↓H␈εαnegativ␈α␈e:␈α∂For␈α
example,␈α∞assuming␈α∞a␈α
10-bit␈α∞w␈α␈ord,␈α∞the␈α
t␈α␈w␈α␈o's␈α∞complemen␈α␈t␈α
n␈α␈um␈α␈ber
␈β	I␈↓ ∧~␈εα1101111110␈α$111111010␈α$011101011
␈β
'␈↓ ↓H␈εα(where␈αεthe␈απsign␈απis␈απgiv␈α␈en␈απonly␈απfor␈απthe␈αεmost␈απsigni|can␈α␈t␈απw␈α␈ord)␈απis␈απproperly␈απthough␈α␈t␈απof␈αεas
␈β␈↓ β∞␈ε¬2␈α↓7␈↓ ¬T␈ε¬18␈↓ λπ␈ε¬9
␈βε␈↓ αX␈ε⊗␈␈↓ α|␈εα2␈↓ β3␈εα+␈αλ(101111110␈↓ ¬
␈εα)␈↓ ¬0␈ε⊗↓␈↓ ¬B␈εα2␈↓ ¬x␈εα+␈αλ(11111010␈↓ π@␈εα)␈↓ πc␈ε⊗↓␈↓ πu␈εα2␈↓ λ≥␈εα+␈αλ(011101011␈↓ 	w␈εα)␈↓ 
∩␈εα.
␈β∪␈↓ ¬→␈ε¬2␈↓ πL␈ε¬2␈↓ 
β␈ε¬2
␈βg␈↓ α␈εαAddition␈α	of␈α
signed␈α	n␈α␈um␈α␈bers␈α
is␈α	sligh␈α␈tly␈α
easier␈α	when␈α
complemen␈α␈t␈α	notations␈α	are
␈β∩␈↓ ↓H␈εαbeing␈α	used,␈αsince␈α	the␈α
routine␈α
for␈α	adding␈↓ ε4␈ελn␈↓ εJ␈εα-place␈α
nonnegativ␈α␈e␈α	in␈α␈tegers␈α
can␈α
be␈α	used
␈β=␈↓ ↓H␈εαfor␈αarbitrary␈↓ β_␈ελn␈↓ β.␈εα-place␈αin␈α␈tegers;␈αthe␈αsign␈αappears␈αonly␈αin␈αthe␈α|rst␈αw␈α␈ord,␈αso␈αthe␈αless
␈βi␈↓ ↓H␈εαsigni|can␈α␈t␈αw␈α␈ords␈αmay␈αbe␈αadded␈αtogether␈αirrespectiv␈α␈e␈αof␈αthe␈αactual␈αsign.␈α(Special
␈β
∀␈↓ ↓H␈εαatten␈α␈tion␈αm␈α␈ust␈α
be␈α
giv␈α␈en␈α
to␈α
the␈αleftmost␈α
carry␈α
when␈α
ones'␈α
complemen␈α␈t␈αnotation
␈β
?␈↓ ↓H␈εαis␈α∂being␈α⊂used,␈α⊃ho␈α␈w␈α␈ev␈α␈er;␈α∩it␈α⊂m␈α␈ust␈α⊂be␈α∂added␈α⊂in␈α␈to␈α⊂the␈α⊂least␈α⊂signi|can␈α␈t␈α⊂w␈α␈ord,␈α⊂and
␈β
j␈↓ ↓H␈εαpossibly␈α∞propagated␈α∞further␈α
to␈α∞the␈α∞left.)␈α∩Similarly,␈α∂w␈α␈e␈α∞|nd␈α∞that␈α
subtraction␈α∞of
␈β∞∃␈↓ ↓H␈εαsigned␈α	n␈α␈um␈α␈bers␈α	is␈α	sligh␈α␈tly␈α	simpler␈α	with␈α	complemen␈α␈t␈α	notation.␈α
On␈α	the␈α	other␈α	hand,
␈β∞A␈↓ ↓H␈εαm␈α␈ultiplication␈α∞and␈α
division␈α∞seem␈α∞to␈α∞be␈α∞done␈α∞most␈α∞easily␈α∞by␈α∞w␈α␈orking␈α∞with␈α
non-
␈β∞l␈↓ ↓H␈εαnegativ␈α␈e␈α∞quan␈α␈tities␈α∞and␈α∞doing␈α∞suitable␈α
complemen␈α␈tation␈α∞operations␈α∞beforehand
␈β∂↔␈↓ ↓H␈εαto␈α∞mak␈α␈e␈α
sure␈α∞that␈α∞both␈α∞operands␈α∞are␈α∞nonnegativ␈α␈e;␈α∂it␈α∞may␈α∞be␈α∞possible␈α∞to␈α
av␈α␈oid
␈β∂B␈↓ ↓H␈εαthis␈α
complemen␈α␈tation␈α
by␈α
devising␈α
some␈αtricks␈α
for␈α
w␈α␈orking␈α
directly␈α
with␈α
negativ␈α␈e
␈β∂m␈↓ ↓H␈εαn␈α␈um␈α␈bers␈αin␈α
a␈α
complemen␈α␈t␈α
notation,␈α
and␈α
it␈α
is␈α
not␈αhard␈α
to␈α
see␈α
ho␈α␈w␈α
this␈α
could␈αbe
␈β⊂→␈↓ ↓H␈εαdone␈α∂in␈α⊂double-precision␈α∂m␈α␈ultiplication,␈α⊃but␈α∂care␈α⊂should␈α∂be␈α⊂tak␈α␈en␈α∂not␈α⊂to␈α∂slo␈α␈w
␈β⊂D␈↓ ↓H␈εαdo␈α␈wn␈α∞the␈α∞inner␈α∞loops␈α∞of␈α∞the␈α∞subroutines␈α∂when␈α∞high␈α∞precision␈α∞is␈α∞required.␈α∩Note
␈β⊂o␈↓ ↓H␈εαthat␈α∂the␈α⊂product␈α⊂of␈α⊂t␈α␈w␈α␈o␈↓ ∧[␈ελm␈↓ ∧z␈εα-place␈α⊂n␈α␈um␈α␈bers␈α⊂in␈α⊂t␈α␈w␈α␈o's␈α⊂complemen␈α␈t␈α⊂notation␈α∂may
␈β⊃∃␈↓ εN␈εm␈↓ π2␈ε¬2␈↓ π@␈εm
␈β⊃~␈↓ ↓H␈εαrequire␈α2␈↓ αR␈ελm␈↓ αy␈εα+␈αλ1␈αplaces:␈αthe␈αsquare␈αof␈α(␈ε⊗␈␈↓ ε?␈ελb␈↓ εh␈εα)␈αis␈↓ π$␈ελb␈↓ πZ␈εα.
␈β∪(

␈β↓Y␈↓ ↓H␈εα4.3.1␈ε∞␈↓ π⊗TH␈α␈E␈α	CLASSICA␈α␈L␈α	AL␈α␈GORITH␈α␈MS␈↓ 
v␈εα259
␈βα(␈↓ α␈εαLet␈α∂us␈α∂no␈α␈w␈α⊂turn␈α∂to␈α∂an␈α∂analysis␈α∂of␈α∂the␈α⊂quan␈α␈tity␈↓ λ⊗␈ελK␈↓ λC␈εαthat␈α∂arises␈α∂in␈α∂Program
␈βαS␈↓ ↓H␈εαA␈↓ ↓b␈εα,␈α∂i.e.,␈α⊂the␈α∂n␈α␈um␈α␈ber␈α∂of␈α∂carries␈α∞that␈α∂occur␈α∂when␈α∂t␈α␈w␈α␈o␈↓ λε␈ελn␈↓ λ≤␈εα-place␈α∂n␈α␈um␈α␈bers␈α∂are␈α∞being
␈βα}␈↓ ↓H␈εαadded␈αtogether.␈αAlthough␈↓ ∧g␈ελK␈↓ ¬⊂␈εαhas␈αno␈αe{ect␈αon␈αthe␈αtotal␈αrunning␈αtime␈αof␈αProgram
␈ββ*␈↓ ↓H␈εαA␈↓ ↓b␈εα,␈α⊂it␈α⊂does␈α⊂a{ect␈α⊂the␈α∂running␈α⊂time␈α⊂of␈α⊂the␈α∂Program␈α⊂A's␈α⊂coun␈α␈terparts␈α⊂that␈α∂deal
␈ββU␈↓ ↓H␈εαwith␈α	complemen␈α␈t␈α
notations,␈α	and␈α
its␈α	analysis␈α
is␈α	in␈α␈teresting␈α
in␈α	itself␈α
as␈α	a␈α	signi|can␈α␈t
␈β∧␈↓ ↓H␈εαapplication␈αof␈αgenerating␈αfunctions.
␈β∧+␈↓ α␈εαSuppose␈α
that␈↓ βi␈ελu␈↓ ∧␈εαand␈↓ ∧S␈ελv␈↓ ∧s␈εαare␈α∞independen␈α␈t␈α
random␈↓ λβ␈ελn␈↓ λ_␈εα-place␈α∞in␈α␈tegers,␈α
uniformly
␈β∧Q␈↓ ε_␈εn
␈β∧V␈↓ ↓H␈εαdistributed␈αin␈α
the␈αrange␈α
0␈ε⊗␈α∀␈↓ ¬_␈ελu␈↓ ¬-␈εα,␈↓ ¬=␈ελv␈↓ ¬[␈εα<␈↓ ε
␈ελb␈↓ ε*␈εα.␈α∞Let␈↓ π∧␈ελp␈↓ πB␈εαbe␈α
the␈αprobability␈α
that␈αexactly
␈β∧d␈↓ π∃␈εn␈↓ π'␈εk
␈β¬α␈↓ ↓H␈ελk␈↓ ↓h␈εαcarries␈α∂occur␈α∂in␈α∂the␈α∂addition␈α∂of␈↓ ¬k␈ελu␈↓ ε⊂␈εαto␈↓ ε?␈ελv␈↓ εR␈εα,␈ε∂␈α∂and␈εα␈α∂that␈α∂one␈α∂of␈α∂these␈α∂carries␈α∞occurs
␈β¬(␈↓ πx␈εn
␈β¬-␈↓ ↓H␈εαin␈α
the␈α∞most␈α∞signi|can␈α␈t␈α∞position␈α∞(so␈α
that␈↓ εM␈ελu␈↓ εl␈εα+␈↓ π→␈ελv␈↓ π9␈ε⊗∃␈↓ πj␈ελb␈↓ λ
␈εα).␈α⊃Similarly,␈α∂let␈↓ 

␈ελq␈↓ 
I␈εαbe␈α
the
␈β¬:␈↓ 
~␈εn␈↓ 
,␈εk
␈β¬X␈↓ ↓H␈εαprobability␈α
that␈α
exactly␈↓ ∧Q␈ελk␈↓ ∧p␈εαcarries␈α
occur,␈α∞but␈α
that␈α
there␈α
is␈α∞no␈α
carry␈α
in␈α
the␈α
most
␈βεβ␈↓ ↓H␈εαsigni|can␈α␈t␈αposition.␈αThen␈αit␈αis␈αnot␈αhard␈αto␈αsee␈αthat
␈βεP␈↓ ∧∂␈ελp␈↓ ∧G␈εα=␈α
0,␈↓ ¬Y␈ελq␈↓ ε
␈εα=␈↓ ε;␈ελ∞␈↓ εe␈εα,␈↓ π=␈εαfor␈αall␈↓ λ'␈ελk␈↓ λ9␈εα;
␈βε]␈↓ ∧ ␈ε¬0␈↓ ∧/␈εk␈↓ ¬f␈ε¬0␈↓ ¬u␈εk␈↓ εH␈ε¬0␈↓ εW␈εk
␈βπ~␈↓ ¬q␈ελb␈↓ ελ␈εα+␈αλ1␈↓ π3␈ελb␈↓ πI␈ε⊗␈␈εα␈αλ1
␈βπ1␈↓ ∧π␈ελp␈↓ ¬?␈εα=␈↓ εJ␈ελp␈↓ πβ␈εα+␈↓ λ␈ελq␈↓ λ9␈εα,␈↓ α␈εα(3)
␈βπ>␈↓ ε[␈εn␈↓ εm␈εk␈↓ λ_␈εn␈↓ λ*␈εk
␈βπ?␈↓ ∧_␈ε¬(␈↓ ∧"␈εn␈↓ ∧4␈ε¬+␈α␈1␈α↓)␈α␈(␈↓ ∧r␈εk␈↓ ¬↓␈ε¬+␈α␈1␈α↓)
␈βπA␈↓ ¬q␈∧πA¬qαU␈↓ π3␈∧πAπ3αU
␈βπI␈↓ ε␈εα2␈↓ ε≥␈ελb␈↓ πM␈εα2␈↓ π←␈ελb
␈βπ{␈↓ ¬q␈ελb␈↓ ελ␈ε⊗␈␈εα␈αλ1␈↓ π3␈ελb␈↓ πI␈εα+␈αλ1
␈βλ∩␈↓ ∧I␈ελq␈↓ ¬?␈εα=␈↓ εJ␈ελp␈↓ πβ␈εα+␈↓ λ␈ελq␈↓ λ9␈εα;
␈βλ ␈↓ ∧V␈ε¬(␈↓ ∧`␈εn␈↓ ∧r␈ε¬+1)␈↓ ¬'␈εk␈↓ ε[␈εn␈↓ εm␈εk␈↓ λ_␈εn␈↓ λ*␈εk
␈βλ"␈↓ ¬q␈∧λ"¬qαU␈↓ π3␈∧λ"π3αU
␈βλ+␈↓ ε␈εα2␈↓ ε≥␈ελb␈↓ πM␈εα2␈↓ π←␈ελb
␈βλr␈↓ ↓H␈εαthis␈α	happens␈α	because␈α	(␈↓ ∧!␈ελb␈↓ ∧4␈ε⊗␈␈εα␈α∧1)/2␈↓ ¬≡␈ελb␈↓ ¬6␈εαis␈α	the␈α	probability␈α	that␈↓ λ∃␈ελu␈↓ λ<␈εα+␈↓ λd␈ελv␈↓ 	␈ε⊗∃␈↓ 	:␈ελb␈↓ 	R␈εαand␈α	(␈↓ 
!␈ελb␈↓ 
4␈εα+␈α∧1)/2␈↓ ≡␈ελb
␈β	␈↓ λ)␈ε¬1␈↓ λt␈ε¬1
␈β	≥␈↓ ↓H␈εαis␈αthe␈αprobability␈α
that␈↓ ∧3␈ελu␈↓ ∧←␈εα+␈↓ ¬␈ελv␈↓ ¬1␈εα+␈α	1␈ε⊗␈α
∃␈↓ ε)␈ελb␈↓ ε7␈εα,␈α
when␈↓ π,␈ελu␈↓ π\␈εαand␈↓ λ"␈ελv␈↓ λM␈εαare␈αindependen␈α␈tly␈αand
␈β	+␈↓ ∧H␈ε¬1␈↓ ¬≠␈ε¬1␈↓ πA␈ε¬1␈↓ λ2␈ε¬1
␈β	I␈↓ ↓H␈εαuniformly␈αdistributed␈αin␈α␈tegers␈αin␈αthe␈αrange␈α0␈ε⊗␈α
∀␈↓ π?␈ελu␈↓ πb␈εα,␈↓ πr␈ελv␈↓ λ~␈εα<␈↓ λH␈ελb␈↓ λV␈εα.
␈β	V␈↓ πS␈ε¬1␈↓ λ↓␈ε¬1
␈β	t␈↓ α␈εαTo␈α∞obtain␈α∞further␈α
information␈α∞about␈α∞these␈α
quan␈α␈tities␈↓ λe␈ελp␈↓ 	$␈εαand␈↓ 	l␈ελq␈↓ 
~␈εα,␈α∞w␈α␈e␈α
may
␈β
↓␈↓ λv␈εn␈↓ 	λ␈εk␈↓ 	y␈εn␈↓ 
␈εk
␈β
∨␈↓ ↓H␈εαset␈αup␈αthe␈αgenerating␈αfunctions
␈β
P␈↓ ∧]␈ε↓X␈↓ πy␈ε↓X
␈β
m␈↓ ¬]␈εk␈↓ ¬y␈εn␈↓ λu␈εk␈↓ 	⊃␈εn
␈β
s␈↓ βG␈ελP␈↓ βa␈εα(␈↓ βm␈ελz␈↓ β|␈εα,␈↓ ∧␈ελt␈↓ ∧→␈εα)␈α
=␈↓ ¬↔␈ελp␈↓ ¬N␈ελz␈↓ ¬l␈ελt␈↓ ε␈εα,␈↓ εc␈ελQ␈↓ ε⎇␈εα(␈↓ π	␈ελz␈↓ π_␈εα,␈↓ π(␈ελt␈↓ π5␈εα)␈α
=␈↓ λ3␈ελq␈↓ λf␈ελz␈↓ 	∧␈ελt␈↓ 	#␈εα.␈↓ α␈εα(4)
␈β↓␈↓ ¬(␈εn␈↓ ¬:␈εk␈↓ λ@␈εn␈↓ λR␈εk
␈β%␈↓ ∧c␈εk␈↓ ∧q␈ε¬,␈↓ ∧y␈εn␈↓ π␈␈εk␈↓ λ
␈ε¬,␈↓ λ∃␈εn
␈β␈␈↓ ↓H␈εαFrom␈α(3)␈αw␈α␈e␈αhav␈α␈e␈αthe␈αbasic␈αrelations
␈βN␈↓ ¬λ␈ε↓∩␈↓ λG␈ε↓∪
␈βR␈↓ ¬"␈ελb␈↓ ¬9␈εα+␈αλ1␈↓ π⊂␈ελb␈↓ π'␈ε⊗␈␈εα␈αλ1
␈βh␈↓ βQ␈ελP␈↓ βj␈εα(␈↓ βv␈ελz␈↓ ∧¬␈εα,␈↓ ∧∃␈ελt␈↓ ∧"␈εα)␈↓ ∧8␈εα=␈↓ ∧f␈ελz␈↓ ∧u␈ελt␈↓ ¬{␈ελP␈↓ ε∀␈εα(␈↓ ε ␈ελz␈↓ ε/␈εα,␈↓ ε?␈ελt␈↓ εL␈εα)␈αλ+␈↓ πi␈ελQ␈↓ λβ␈εα(␈↓ λ∂␈ελz␈↓ λ≡␈εα,␈↓ λ.␈ελt␈↓ λ;␈εα)␈↓ λc␈εα,
␈βy␈↓ ¬"␈∧y¬"αU␈↓ π⊂␈∧yπ⊂αU
␈β
↓␈↓ ¬<␈εα2␈↓ ¬N␈ελb␈↓ π*␈εα2␈↓ π<␈ελb
␈β
7␈↓ ¬?␈ε↓∩␈↓ λ}␈ε↓∪
␈β
:␈↓ ¬Y␈ελb␈↓ ¬p␈ε⊗␈␈εα␈αλ1␈↓ πG␈ελb␈↓ π↑␈εα+␈αλ1
␈β
Q␈↓ βP␈ελQ␈↓ βj␈εα(␈↓ βv␈ελz␈↓ ∧¬␈εα,␈↓ ∧∃␈ελt␈↓ ∧"␈εα)␈↓ ∧8␈εα=␈α
1␈αλ+␈↓ ¬,␈ελt␈↓ ε2␈ελP␈↓ εK␈εα(␈↓ εW␈ελz␈↓ εf␈εα,␈↓ εv␈ελt␈↓ πβ␈εα)␈αλ+␈↓ λ ␈ελQ␈↓ λ:␈εα(␈↓ λF␈ελz␈↓ λU␈εα,␈↓ λe␈ελt␈↓ λr␈εα)␈↓ 	~␈εα.
␈β
a␈↓ ¬Y␈∧
a¬YαU␈↓ πG␈∧
aπGαU
␈β
i␈↓ ¬s␈εα2␈↓ ε¬␈ελb␈↓ πa␈εα2␈↓ πs␈ελb
␈β∞;␈↓ ↓H␈εαThese␈αt␈α␈w␈α␈o␈αequations␈αare␈αreadily␈αsolv␈α␈ed␈αfor␈↓ εm␈ελP␈↓ πε␈εα(␈↓ π∩␈ελz␈↓ π!␈εα,␈↓ π1␈ελt␈↓ π>␈εα)␈αand␈↓ λ≤␈ελQ␈↓ λ6␈εα(␈↓ λB␈ελz␈↓ λQ␈εα,␈↓ λa␈ελt␈↓ λo␈εα);␈αand␈αif␈αw␈α␈e␈αlet
␈β∞o␈↓ π@␈ε↓X
␈β∂␈↓ λX␈εn
␈β∂∩␈↓ ∧↓␈ελG␈↓ ∧≤␈εα(␈↓ ∧(␈ελz␈↓ ∧7␈εα,␈↓ ∧G␈ελt␈↓ ∧T␈εα)␈α
=␈↓ ¬_␈ελP␈↓ ¬1␈εα(␈↓ ¬=␈ελz␈↓ ¬L␈εα,␈↓ ¬\␈ελt␈↓ ¬j␈εα)␈αλ+␈↓ ε*␈ελQ␈↓ εD␈εα(␈↓ εP␈ελz␈↓ ε←␈εα,␈↓ εo␈ελt␈↓ ε|␈εα)␈α
=␈↓ πz␈ελG␈↓ λ$␈εα(␈↓ λ0␈ελz␈↓ λ?␈εα)␈↓ λK␈ελt␈↓ λj␈εα,
␈β∂ ␈↓ λ∩␈εn
␈β∂D␈↓ πQ␈εn
␈β⊂→␈↓ ↓H␈εαwhere␈↓ α1␈ελG␈↓ α[␈εα(␈↓ αg␈ελz␈↓ αv␈εα)␈α∞is␈α∞the␈α
generating␈α∞function␈α∞for␈α∞the␈α
total␈α∞n␈α␈um␈α␈ber␈α∞of␈α
carries␈α∞when␈↓ ␈ελn␈↓  ␈εα-
␈β⊂&␈↓ αI␈εn
␈β⊂D␈↓ ↓H␈εαplace␈αn␈α␈um␈α␈bers␈αare␈αadded,␈αw␈α␈e␈α|nd␈αthat
␈β⊃∪␈↓ 
≠␈ε¬2
␈β⊃∃␈↓ πR␈ε¬1
␈β⊃_␈↓ ↓H␈ελG␈↓ ↓c␈εα(␈↓ ↓o␈ελz␈↓ ↓}␈εα,␈↓ α∞␈ελt␈↓ α≠␈εα)␈α
=␈α
(␈↓ αk␈ελb␈↓ β↓␈ε⊗␈␈↓ β-␈ελz␈↓ β<␈ελt␈↓ βI␈εα)/␈↓ βg␈ελp␈↓ βz␈εα(␈↓ ∧ε␈ελz␈↓ ∧∃␈εα,␈↓ ∧%␈ελt␈↓ ∧2␈εα),␈↓ ¬⊗␈εαwhere␈↓ ¬}␈ελp␈↓ ε⊂␈εα(␈↓ ε≤␈ελz␈↓ ε+␈εα,␈↓ ε;␈ελt␈↓ εH␈εα)␈α
=␈↓ π␈ελb␈↓ π"␈ε⊗␈␈↓ πe␈εα(1␈αλ+␈↓ λ7␈ελb␈↓ λE␈εα)(1␈αλ+␈↓ 	#␈ελz␈↓ 	2␈εα)␈↓ 	>␈ελt␈↓ 	S␈εα+␈↓ 	␈␈ελz␈↓ 
∞␈ελt␈↓ 
*␈εα.␈↓ α␈εα(5)
␈β⊃)␈↓ πR␈∧⊃)πRα∂
␈β⊃+␈↓ πR␈ε¬2
␈β∪(

␈β↓Y␈↓ ↓H␈εα260␈↓ α=␈ε∞A␈α␈RITH␈α␈METIC␈εα␈↓ 
b4.3.1
␈βα&␈↓ ↓H␈εαNote␈α∂that␈↓ αs␈ελG␈↓ β∂␈εα(1,␈↓ β=␈ελt␈↓ βJ␈εα)␈α∂=␈α∂1/(1␈ε⊗␈α	␈␈↓ ¬⊃␈ελt␈↓ ¬≡␈εα),␈α⊂and␈α∂this␈α∂checks␈α∂with␈α∂the␈α∂fact␈α∂that␈↓ 	⎇␈ελG␈↓ 
'␈εα(1)␈α∞m␈α␈ust
␈βα4␈↓ 
∃␈εn
␈βαQ␈↓ ↓H␈εαequal␈α
1␈α
(it␈αis␈α
the␈α
sum␈αof␈α
all␈αthe␈α
possible␈α
probabilities).␈αTaking␈α
partial␈α
derivativ␈α␈es
␈βα⎇␈↓ ↓H␈εαof␈α(5)␈αwith␈αrespect␈αto␈↓ ∧ ␈ελz␈↓ ∧/␈εα,␈αw␈α␈e␈α|nd␈αthat
␈ββD␈↓ β7␈ε↓X
␈ββP␈↓ αP␈ελ%␈↓ α`␈ελG␈↓ ¬.␈ε⊗␈␈↓ ¬R␈ελt␈↓ ε-␈ελt␈↓ ε:␈εα(␈↓ εF␈ελb␈↓ ε]␈ε⊗␈␈↓ π	␈ελz␈↓ π_␈ελt␈↓ π%␈εα)(␈↓ π=␈ελb␈↓ πS␈εα+␈αλ1␈ε⊗␈αλ␈␈εα␈αλ2␈↓ λW␈ελt␈↓ λd␈εα)
␈ββa␈↓ ∧␈ε→0␈↓ ∧M␈εn
␈ββg␈↓ β	␈εα=␈↓ βq␈ελG␈↓ ∧→␈εα(␈↓ ∧%␈ελz␈↓ ∧4␈εα)␈↓ ∧@␈ελt␈↓ ∧i␈εα=␈↓ ¬⎇␈εα+␈↓ λt␈εα;
␈ββw␈↓ αP␈∧βwαPα,␈↓ ¬≠␈∧βw¬≠αW␈↓ ε-␈∧βwε-ααC
␈ββy␈↓ ∧π␈εn
␈ββ⎇␈↓ π|␈ε¬2
␈ββ␈␈↓ αV␈ελ%␈↓ αf␈ελz␈↓ ¬≠␈ελp␈↓ ¬-␈εα(␈↓ ¬9␈ελz␈↓ ¬H␈εα,␈↓ ¬X␈ελt␈↓ ¬e␈εα)␈↓ π∪␈εα2␈↓ π%␈ελp␈↓ π8␈εα(␈↓ πD␈ελz␈↓ πS␈εα,␈↓ πc␈ελt␈↓ πp␈εα)
␈β∧_␈↓ βH␈εn
␈β∧=␈↓ β7␈ε↓X
␈β∧C␈↓ ¬N␈ε¬2␈↓ πe␈ε¬2
␈β∧D␈↓ αR␈ε¬2
␈β∧H␈↓ ¬≥␈ε⊗␈␈↓ ¬A␈ελt␈↓ ¬\␈εα(␈↓ ¬h␈ελb␈↓ ¬␈␈εα+␈αλ1␈ε⊗␈αλ␈␈εα␈αλ2␈↓ πβ␈ελt␈↓ π⊂␈εα)␈↓ πX␈ελt␈↓ πs␈εα(␈↓ π␈␈ελb␈↓ λ∃␈ε⊗␈␈↓ λA␈ελz␈↓ λP␈ελt␈↓ λ]␈εα)(␈↓ λu␈ελb␈↓ 	␈εα+␈αλ1␈ε⊗␈αλ␈␈εα␈αλ2␈↓ 
⊂␈ελt␈↓ 
≥␈εα)
␈β∧I␈↓ αA␈ελ%␈↓ α`␈ελG
␈β∧Z␈↓ ∧␈ε→0␈α↓0␈↓ ∧O␈εn
␈β∧`␈↓ β	␈εα=␈↓ βq␈ελG␈↓ ∧≠␈εα(␈↓ ∧'␈ελz␈↓ ∧6␈εα)␈↓ ∧B␈ελt␈↓ ∧k␈εα=␈↓ π(␈εα+␈↓ 
-␈εα.
␈β∧p␈↓ αA␈∧∧pαAα:␈↓ ¬≥␈∧∧p¬≥α↓␈␈↓ πX␈∧∧pπXααR
␈β∧r␈↓ ∧π␈εn
␈β∧v␈↓ αg␈ε¬2␈↓ ε@␈ε¬2␈↓ 	$␈ε¬3
␈β∧x␈↓ αG␈ελ%␈↓ αX␈ελz␈↓ ¬j␈ελp␈↓ ¬|␈εα(␈↓ ελ␈ελz␈↓ ε↔␈εα,␈↓ ε'␈ελt␈↓ ε4␈εα)␈↓ λN␈ελp␈↓ λ`␈εα(␈↓ λl␈ελz␈↓ λ{␈εα,␈↓ 	␈ελt␈↓ 	_␈εα)
␈β¬⊃␈↓ βH␈εn
␈β¬g␈↓ ↓H␈εαNo␈α␈w␈αlet␈αus␈αput␈↓ β?␈ελz␈↓ βX␈εα=␈α
1␈αand␈αexpand␈αin␈αpartial␈αfractions:
␈βε.␈↓ ↓u␈ε↓X
␈βε7␈↓ βq␈ε↓∩␈↓ 	,␈ε↓∪
␈βε:␈↓ β↑␈ελt␈↓ ∧?␈εα1␈↓ ε$␈εα1␈↓ λ5␈εα1
␈βεK␈↓ αJ␈ε→0␈↓ β
␈εn
␈βεQ␈↓ α/␈ελG␈↓ αV␈εα(1)␈↓ β␈ελt␈↓ β)␈εα=␈↓ ¬⊃␈ε⊗␈␈↓ π$␈εα+␈↓ 	H␈εα,
␈βεa␈↓ β[␈∧εaβ[α∩␈↓ ∧␈∧εa∧αz␈↓ ¬A␈∧εa¬Aα↓X␈↓ πT␈∧εaπTα↓T
␈βεc␈↓ αE␈εn
␈βεg␈↓ ∧v␈ε¬2
␈βεi␈↓ β[␈εα2␈↓ ∧␈εα(1␈ε⊗␈αλ␈␈↓ ∧]␈ελt␈↓ ∧j␈εα)␈↓ ¬A␈εα(␈↓ ¬M␈ελb␈↓ ¬c␈ε⊗␈␈εα␈αλ1)(1␈ε⊗␈αλ␈␈↓ ε␈␈ελt␈↓ π␈εα)␈↓ πT␈εα(␈↓ π`␈ελb␈↓ πw␈ε⊗␈␈εα␈αλ1)(␈↓ λM␈ελb␈↓ λc␈ε⊗␈␈↓ 	∂␈ελt␈↓ 	≤␈εα)
␈βπα␈↓ αε␈εn
␈βπ&␈↓ ↓s␈ε↓X
␈βπ-␈↓ βh␈ε¬2
␈βπ/␈↓ β{␈ε↓∩
␈βπ2␈↓ β[␈ελt␈↓ ∧I␈εα1␈↓ ε4␈εα1␈↓ λT␈εα1
␈βπC␈↓ αH␈ε→00␈↓ β
␈εn
␈βπI␈↓ α-␈ελG␈↓ αV␈εα(1)␈↓ β␈ελt␈↓ β)␈εα=␈↓ ¬~␈ε⊗␈␈↓ π<␈εα+
␈βπY␈↓ β[␈∧πYβ[α≤␈↓ ∧∃␈∧πY∧∃αz␈↓ ¬J␈∧πY¬Jα↓f␈↓ πl␈∧πYπlα↓c
␈βπ[␈↓ αC␈εn
␈βπ←␈↓ ¬␈ε¬3␈↓ ε7␈ε¬2␈↓ λX␈ε¬2
␈βπa␈↓ β`␈εα2␈↓ ∧∃␈εα(1␈ε⊗␈αλ␈␈↓ ∧g␈ελt␈↓ ∧t␈εα)␈↓ ¬J␈εα(␈↓ ¬V␈ελb␈↓ ¬m␈ε⊗␈␈εα␈αλ1␈↓ ε+␈εα)␈↓ εE␈εα(1␈ε⊗␈αλ␈␈↓ π↔␈ελt␈↓ π$␈εα)␈↓ πl␈εα(␈↓ πx␈ελb␈↓ λ∞␈ε⊗␈␈εα␈αλ1␈↓ λL␈εα)␈↓ λg␈εα(␈↓ λs␈ελb␈↓ 		␈ε⊗␈␈↓ 	5␈ελt␈↓ 	B␈εα)
␈βπz␈↓ α∧␈εn
␈βλ≡␈↓ 
[␈ε↓∪
␈βλ"␈↓ 	]␈εα1
␈βλ8␈↓ λE␈εα+␈↓ 
w␈εα.
␈βλI␈↓ λu␈∧λIλuα↓c
␈βλN␈↓ 
I␈ε¬2
␈βλQ␈↓ λu␈εα(␈↓ 	↓␈ελb␈↓ 	_␈ε⊗␈␈εα␈αλ1)(␈↓ 	n␈ελb␈↓ 
∧␈ε⊗␈␈↓ 
0␈ελt␈↓ 
=␈εα)
␈β	#␈↓ ↓H␈εαIt␈αfollo␈α␈ws␈αthat␈αthe␈αav␈α␈erage␈αn␈α␈um␈α␈ber␈αof␈αcarries,␈αi.e.,␈αthe␈αmean␈αvalue␈αof␈↓ 
λ␈ελK␈↓ 
&␈εα,␈αis
␈β	r␈↓ ¬2␈ε↓ ␈↓ λ?␈ε↓!
␈β	u␈↓ λ⊃␈εn
␈β	⎇␈↓ εo␈ε↓∩␈↓ πK␈ε↓∩␈↓ π{␈ε↓∪␈↓ λ)␈ε↓∪
␈β
↓␈↓ ¬≤␈εα1␈↓ ε8␈εα1␈↓ πe␈εα1
␈β
⊃␈↓ ∧)␈ε→0
␈β
↔␈↓ ∧∞␈ελG␈↓ ∧6␈εα(1)␈α
=␈↓ ¬I␈ελn␈↓ ¬g␈ε⊗␈␈↓ π¬␈εα1␈ε⊗␈αλ␈␈↓ λ\␈εα;␈↓ α␈εα(6)
␈β
(␈↓ ¬≤␈∧
(¬≤α∩␈↓ ε↔␈∧
(ε↔αU␈↓ πe␈∧
(πeα∩
␈β
)␈↓ ∧$␈εn
␈β
0␈↓ ¬≤␈εα2␈↓ ε↔␈ελb␈↓ ε-␈ε⊗␈␈εα␈αλ1␈↓ πg␈ελb
␈β␈↓ ↓H␈εαthe␈αvariance␈αis
␈βU␈↓ ↓c␈ε→00␈↓ αk␈ε→0␈↓ βp␈ε→0␈↓ ∧'␈ε¬2
␈β[␈↓ ↓H␈ελG␈↓ ↓q␈εα(1)␈αλ+␈↓ αO␈ελG␈↓ αw␈εα(1)␈ε⊗␈αλ␈␈↓ βU␈ελG␈↓ β⎇␈εα(1␈↓ ∧≠␈εα)
␈βm␈↓ ↓]␈εn␈↓ αe␈εn␈↓ βk␈εn
␈β
␈↓ αf␈ε↓ ␈↓ 
¬␈ε↓!
␈β∂␈↓ πV␈εn␈↓ 	e␈ε¬2␈↓ 	s␈εn
␈β_␈↓ π⊂␈ε↓∩␈↓ π@␈ε↓∪␈↓ 	∨␈ε↓∩␈↓ 	O␈ε↓∪
␈β≠␈↓ αP␈εα1␈↓ βa␈εα2␈↓ βs␈ελn␈↓ ∧e␈εα2␈↓ ∧w␈ελb␈↓ ¬
␈εα+␈αλ1␈↓ ε≤␈εα2␈↓ ε.␈ελb␈↓ εD␈εα+␈αλ2␈↓ π*␈εα1␈↓ λU␈εα1␈↓ 	9␈εα1
␈β2␈↓ α≡␈εα=␈↓ α⎇␈ελn␈↓ β~␈εα+␈↓ ∧+␈ε⊗␈␈↓ ¬b␈εα+␈↓ πp␈ε⊗␈␈↓ 
"␈εα.␈↓ α(7)
␈βB␈↓ αP␈∧BαPα∩␈↓ βJ␈∧BβJαU␈↓ ∧[␈∧B∧[α{␈↓ ε∩␈∧Bε∩α{␈↓ π*␈∧Bπ*α∩␈↓ λ ␈∧Bλ α{␈↓ 	9␈∧B	9α∩
␈βH␈↓ ¬G␈ε¬2␈↓ ε}␈ε¬2␈↓ 	
␈ε¬2
␈βK␈↓ αP␈εα4␈↓ βJ␈ελb␈↓ βa␈ε⊗␈␈εα␈αλ1␈↓ ∧[␈εα(␈↓ ∧g␈ελb␈↓ ∧⎇␈ε⊗␈␈εα␈αλ1␈↓ ¬;␈εα)␈↓ ε∩␈εα(␈↓ ε≡␈ελb␈↓ ε4␈ε⊗␈␈εα␈αλ1␈↓ εr␈εα)␈↓ π,␈ελb␈↓ λ ␈εα(␈↓ λ,␈ελb␈↓ λC␈ε⊗␈␈εα␈αλ1␈↓ 	↓␈εα)␈↓ 	;␈ελb
␈β
(␈↓ π[␈ε¬1
␈β
+␈↓ ↓H␈εαSo␈αthe␈αn␈α␈um␈α␈ber␈αof␈αcarries␈αis␈αjust␈αsligh␈α␈tly␈αless␈αthan␈↓ πm␈ελn␈↓ λ∂␈εαunder␈αthese␈αassumptions.
␈β
;␈↓ π[␈∧
;π[α∂
␈β
>␈↓ π[␈ε¬2
␈β
l␈↓ ↓H␈ε∩History␈α	and␈α	Bibliograph␈α␈y.␈εα␈α∩The␈α	early␈α	history␈α	of␈α	the␈α	classical␈α	algorithms␈α	described
␈β∞↔␈↓ ↓H␈εαin␈α	this␈α
section␈α
is␈α
left␈α
as␈α
an␈α	in␈α␈teresting␈α
project␈α
for␈α
the␈α
reader,␈α
and␈α
only␈α
the␈α	history
␈β∞B␈↓ ↓H␈εαof␈αtheir␈αimplemen␈α␈tation␈αon␈αcomputers␈αwill␈αbe␈αtraced␈αhere.
␈β∞i␈↓ βg␈εn
␈β∞n␈↓ α␈εαThe␈α∞use␈α
of␈α∞1␈↓ βU␈εα0␈↓ ∧π␈εαas␈α
an␈α∞assumed␈α∞radix␈α
when␈α∞m␈α␈ultiplying␈α
large␈α∞n␈α␈um␈α␈bers␈α∞on␈α
a
␈β∂→␈↓ ↓H␈εαdesk␈α
calculator␈α∞was␈α∞discussed␈α
by␈α∞D.␈α∞N.␈α
Lehmer␈α∞and␈α
J.␈α∞P.␈α∞Ballan␈α␈tine,␈ε∂␈α∞AMM␈ε∩␈α
30
␈β∂D␈↓ ↓H␈εα(1923),␈α67↑69.
␈β∂o␈↓ α␈εαDouble-precision␈α
arithmetic␈αon␈α
digital␈α
computers␈αwas␈α
|rst␈α
treated␈αby␈α
J.␈α
v␈α␈on
␈β⊂~␈↓ ↓H␈εαNeumann␈αand␈α
H.␈α
H.␈αGoldstine␈α
[J.␈α
v␈α␈on␈αNeumann,␈ε∂␈α
Collected␈α
Works␈ε∩␈α
5␈εα,␈α142↑151].
␈β⊂F␈↓ ↓H␈εαTheorems␈α⊂A␈α⊂and␈α⊂B␈α⊃abo␈α␈v␈α␈e␈α⊂are␈α⊂due␈α⊂to␈α⊃D.␈α⊂A.␈α⊂Pope␈α⊂and␈α⊂M.␈α⊃L.␈α⊂Stein␈α⊂[␈ε∂CA␈α␈CM␈ε∩␈α⊂3
␈β⊂q␈↓ ↓H␈εα(1960),␈α⊂652↑654],␈α⊂whose␈α⊂paper␈α∂also␈α⊂con␈α␈tains␈α∂a␈α⊂bibliograph␈α␈y␈α∂of␈α⊂earlier␈α∂w␈α␈ork␈α∂on
␈β⊃≤␈↓ ↓H␈εαdouble-precision␈αroutines.␈αOther␈αways␈αof␈αchoosing␈αthe␈αtrial␈αquotien␈α␈t␈↓ 	t␈εα∂␈↓ 	u␈ελq␈↓ 
⊂␈εαhav␈α␈e␈αbeen
␈β∪(

␈β↓Y␈↓ ↓H␈εα4.3.1␈ε∞␈↓ π⊗TH␈α␈E␈α	CLASSICA␈α␈L␈α	AL␈α␈GORITH␈α␈MS␈↓ 
v␈εα261
␈βα&␈↓ ↓H␈εαdiscussed␈α⊃by␈α⊃A.␈α∩G.␈α⊃Co␈α␈x␈α⊃and␈α⊃H.␈α∩A.␈α⊃Luther,␈ε∂␈α∪CA␈α␈CM␈ε∩␈α⊃4␈εα␈α⊃(1961),␈α∪353␈α⊃[divide␈α⊃by
␈βαQ␈↓ ↓H␈ελv␈↓ ↓o␈εα+␈αλ1␈α∞instead␈α
of␈↓ βc␈ελv␈↓ ∧↓␈εα],␈α∞and␈α
by␈α
M.␈α
L.␈α∞Stein,␈ε∂␈α
CA␈α␈CM␈ε∩␈α
7␈εα␈α∞(1964),␈α
472↑474␈α
[divide␈α
by
␈βα←␈↓ ↓W␈ε¬1␈↓ βs␈ε¬1
␈βα⎇␈↓ ↓H␈ελv␈↓ ↓q␈εαor␈↓ α≠␈ελv␈↓ α@␈εα+␈αε1␈αaccording␈α
to␈αthe␈αmagnitude␈α
of␈↓ εh␈ελv␈↓ πε␈εα];␈αKrishnam␈α␈urth␈α␈y␈α[␈ε∂CA␈α␈CM␈ε∩␈α8␈εα␈α
(1965),
␈ββ
␈↓ ↓W␈ε¬1␈↓ α+␈ε¬1␈↓ εx␈ε¬2
␈ββ(␈↓ ↓H␈εα179↑181]␈α
sho␈α␈w␈α␈ed␈α
that␈α
examination␈αof␈α
the␈α
single-precision␈αremainder␈α
in␈α
the␈α
latter
␈ββS␈↓ ↓H␈εαmethod␈αleads␈αto␈α
an␈αimpro␈α␈v␈α␈emen␈α␈t␈α
o␈α␈v␈α␈er␈αTheorem␈α
B.␈α~Krishnam␈α␈urth␈α␈y␈αand␈αNandi,
␈ββ}␈↓ ↓H␈ε∂CA␈α␈CM␈ε∩␈α∞10␈εα␈α∂(1967),␈α⊂809↑813,␈α∂suggested␈α∂a␈α∂way␈α∞to␈α∂replace␈α∂the␈α∂normalization␈α∞and
␈β∧)␈↓ ↓H␈εαunnormalization␈α	operations␈α	of␈α	Algorithm␈α	D␈α	by␈α	a␈α
calculation␈α	of␈↓ 	↔␈εα∂␈↓ 	_␈ελq␈↓ 	1␈εαbased␈α	on␈α	sev␈α␈eral
␈β∧U␈↓ ↓H␈εαleading␈αdigits␈αof␈αthe␈αoperands.␈αG.␈αE.␈αCollins␈αand␈αD.␈αR.␈αMusser␈αhav␈α␈e␈αcarried␈αout
␈β¬␈↓ ↓H␈εαan␈αλin␈α␈teresting␈α	analysis␈α	of␈α	the␈α	original␈α	Pope␈αλand␈α	Stein␈α	algorithm␈α	[␈ε∂Inf.␈α	Proc.␈αλLetters
␈β¬+␈↓ ↓H␈ε∩6␈εα␈α(1977),␈α151↑155].
␈β¬X␈↓ α␈εαSev␈α␈eral␈αalternativ␈α␈e␈αmethods␈αfor␈αdivision␈αhav␈α␈e␈αalso␈αbeen␈αsuggested:
␈βε∀␈↓ ↓b␈εα1)␈↓ α␈εα\Fourier␈α⊃division"␈α⊃[J.␈α⊃Fourier,␈ε∂␈α∪Analyse␈α⊃des␈↓ πW␈ε∂∞␈↓ πX␈ε∂e␈↓ πh␈ε∂quations␈α⊃d␈↓ 	⊂␈ε∂∞␈↓ 	⊃␈ε∂e␈↓ 	!␈ε∂termin␈↓ 
λ␈ε∂∞␈↓ 
	␈ε∂e␈↓ 
→␈ε∂es␈εα␈α⊃(Paris,
␈βε@␈↓ ↓H␈εα1831),␈ε⊗␈α
x␈εα2.21].␈α∩This␈α
method,␈α
which␈α	was␈α	often␈α
used␈α	on␈α	desk␈α
calculators,␈α	essen␈α␈tially
␈βεk␈↓ ↓H␈εαobtains␈α	each␈α
new␈α
quotien␈α␈t␈α
digit␈α
by␈α
increasing␈α	the␈α
precision␈α
of␈α
the␈α
divisor␈α
and␈α	the
␈βπ⊗␈↓ ↓H␈εαdividend␈αat␈αeach␈αstep.␈αSome␈αrather␈αextensiv␈α␈e␈αtests␈αby␈αthe␈αauthor␈αhav␈α␈e␈αindicated
␈βπA␈↓ ↓H␈εαthat␈αsuch␈αa␈αmethod␈αis␈α
inferior␈αto␈αthe␈α\divide␈α
and␈αcorrect"␈αtechnique␈αabo␈α␈v␈α␈e,␈αbut
␈βπl␈↓ ↓H␈εαthere␈αmay␈αbe␈αsome␈αapplications␈αin␈αwhich␈αFourier␈αdivision␈αis␈αpractical.␈αSee␈αD.␈αH.
␈βλ_␈↓ ↓H␈εαLehmer,␈ε∂␈α
AMM␈ε∩␈α∞33␈εα␈α
(1926),␈α∞198↑206;␈α∞J.␈α
V.␈α∞Uspensky,␈ε∂␈α
Theory␈α∞of␈α
Equations␈εα␈α
(New
␈βλC␈↓ ↓H␈εαYork:␈αMcGraw-Hill,␈α1948),␈α159↑164.
␈βλ␈␈↓ ↓b␈εα2)␈↓ α␈εα\Newton's␈αλmethod"␈απfor␈αλevaluating␈απthe␈αλreciprocal␈απof␈αλa␈απn␈α␈um␈α␈ber␈αλwas␈απextensiv␈α␈ely
␈β	*␈↓ ↓H␈εαused␈αin␈αearly␈αcomputers␈αwhen␈αthere␈αwas␈αno␈αsingle-precision␈αdivision␈αinstruction.
␈β	V␈↓ ↓H␈εαThe␈αidea␈αis␈αto␈α|nd␈αsome␈αinitial␈αappro␈α␈ximation␈↓ π%␈ελx␈↓ πP␈εαto␈αthe␈αn␈α␈um␈α␈ber␈α1/␈↓ 	←␈ελv␈↓ 	r␈εα,␈αthen␈αto␈αlet
␈β	c␈↓ π6␈ε¬0
␈β	|␈↓ βZ␈ε¬2
␈β
↓␈↓ ↓H␈ελx␈↓ α∨␈εα=␈α
2␈↓ α←␈ελx␈↓ β	␈ε⊗␈␈↓ β5␈ελv␈↓ βH␈ελx␈↓ βl␈εα.␈αThis␈αmethod␈αcon␈α␈v␈α␈erges␈αrapidly␈αto␈α1/␈↓ λB␈ελv␈↓ λU␈εα,␈αsince␈↓ 	B␈ελx␈↓ 	o␈εα=␈α
(1␈ε⊗␈απ␈␈↓ 
n␈ελ∂␈↓ 
|␈εα)/␈↓ ~␈ελv
␈β
∞␈↓ ↓X␈εn␈↓ ↓j␈ε¬+1␈↓ αp␈εn␈↓ 	S␈εn
␈β
∪␈↓ βZ␈εn
␈β
'␈↓ ∧n␈ε¬2
␈β
,␈↓ ↓H␈εαimplies␈α
that␈↓ β
␈ελx␈↓ βd␈εα=␈α
(1␈ε⊗␈αε␈␈↓ ∧`␈ελ∂␈↓ ∧|␈εα)/␈↓ ¬~␈ελv␈↓ ¬-␈εα.␈αCon␈α␈v␈α␈ergence␈α
to␈αthird␈α
order,␈αi.e.,␈αwith␈↓ 
∩␈ελ∂␈↓ 
*␈εαreplaced
␈β
9␈↓ β≥␈εn␈↓ β/␈ε¬+1
␈β
R␈↓ α0␈ε¬3
␈β
W␈↓ ↓H␈εαby␈↓ ↓|␈ελO␈↓ α⊗␈εα(␈↓ α"␈ελ∂␈↓ α>␈εα)␈αat␈αeach␈αstep,␈αcan␈αbe␈αobtained␈αusing␈αthe␈αform␈α␈ula
␈β-␈↓ λf␈ε¬2
␈β4␈↓ βk␈ελx␈↓ ∧B␈εα=␈↓ ∧p␈ελx␈↓ ¬≠␈εα+␈↓ ¬G␈ελx␈↓ ¬i␈εα(1␈ε⊗␈αλ␈␈↓ ε;␈ελv␈↓ εN␈ελx␈↓ εq␈εα)␈αλ+␈↓ π1␈ελx␈↓ πS␈εα(1␈ε⊗␈αλ␈␈↓ λ%␈ελv␈↓ λ8␈ελx␈↓ λZ␈εα)
␈β?␈↓ ¬→␈ε↓␈␈↓ λq␈ε↓↓
␈βA␈↓ β{␈εn␈↓ ∧
␈ε¬+1␈↓ ¬↓␈εn␈↓ ¬W␈εn␈↓ ε←␈εn␈↓ πA␈εn␈↓ λH␈εn
␈β←␈↓ ∧B␈εα=␈↓ ∧p␈ελx␈↓ ¬'␈εα1␈αλ+␈αλ(1␈ε⊗␈αλ␈␈↓ ε?␈ελv␈↓ εR␈ελx␈↓ εt␈εα)(1␈αλ+␈αλ(1␈ε⊗␈αλ␈␈↓ λ$␈ελv␈↓ λ7␈ελx␈↓ λY␈εα))␈↓ λ␈␈εα,
␈βl␈↓ ¬↓␈εn␈↓ εb␈εn␈↓ λG␈εn
␈β8␈↓ ↓H␈εαand␈αsimilar␈αform␈α␈ulas␈αhold␈αfor␈αfourth␈αorder␈αcon␈α␈v␈α␈ergence,␈αetc.;␈αsee␈αP.␈αRabino␈α␈witz,
␈βc␈↓ ↓H␈ε∂CA␈α␈CM␈ε∩␈α⊂4␈εα␈α⊂(1961),␈α⊃98.␈α→For␈α⊂calculations␈α⊂on␈α⊂extremely␈α⊂large␈α⊂n␈α␈um␈α␈bers,␈α⊃Newton's
␈β
∞␈↓ ↓H␈εαsecond-order␈α∞method␈α∂and␈α∞subsequen␈α␈t␈α∂m␈α␈ultiplication␈α∞by␈↓ λC␈ελu␈↓ λg␈εαcan␈α∞actually␈α∂be␈α∞con-
␈β
:␈↓ ↓H␈εαsiderably␈α
faster␈αthan␈α
Algorithm␈αD␈↓ ¬\␈εα,␈α
if␈αw␈α␈e␈α
increase␈αthe␈α
precision␈αof␈↓ 	D␈ελx␈↓ 	q␈εαat␈αeach␈α
step
␈β
G␈↓ 	U␈εn
␈β
e␈↓ ↓H␈εαand␈αλif␈α	w␈α␈e␈α	also␈α	use␈α	the␈α	fast␈αλm␈α␈ultiplication␈α	routines␈α	of␈α	Section␈α	4.3.3.␈α(See␈αλAlgorithm
␈β∞⊂␈↓ ↓H␈εα4.3.3D␈αfor␈αdetails.)␈αSome␈αrelated␈αiterativ␈α␈e␈αschemes␈αhav␈α␈e␈αbeen␈αdiscussed␈αby␈αE.␈αV.
␈β∞;␈↓ ↓H␈εαKrishnam␈α␈urth␈α␈y,␈ε∂␈αIEEE␈αTrans.␈ε∩␈αC↑19␈εα␈α(1970),␈α227↑231.
␈β∞x␈↓ ↓b␈εα3)␈↓ α␈εαDivision␈αmethods␈αhav␈α␈e␈αalso␈αbeen␈αbased␈αon␈αthe␈αevaluation␈αof
␈β∂N␈↓ ∧v␈ε↓ ␈↓ 	
␈ε↓!
␈β∂Q␈↓ π∀␈ε¬2␈↓ λ≥␈ε¬3
␈β∂Y␈↓ ¬S␈ε↓∩␈↓ εβ␈ε↓∪␈↓ εM␈ε↓∩␈↓ ε}␈ε↓∪␈↓ πW␈ε↓∩␈↓ λπ␈ε↓∪
␈β∂]␈↓ βg␈ελu␈↓ ∧\␈ελu␈↓ ¬o␈ελ∂␈↓ εj␈ελ∂␈↓ πs␈ελ∂
␈β∂s␈↓ ∧*␈εα=␈↓ ¬
␈εα1␈ε⊗␈αλ␈␈↓ ε!␈εα+␈↓ π+␈ε⊗␈␈↓ λ4␈εα+␈↓ λ`␈ε⊗↓␈αε↓␈αε↓␈↓ 	'␈εα.
␈β⊂∧␈↓ βG␈∧⊂∧βGαU␈↓ ∧\␈∧⊂∧∧\α⊗␈↓ ¬m␈∧⊂∧¬mα∪␈↓ εg␈∧⊂∧εgα∪␈↓ πq␈∧⊂∧πqα∪
␈β⊂␈↓ βG␈ελv␈↓ βb␈εα+␈↓ ∧∞␈ελ∂␈↓ ∧]␈ελv␈↓ ¬m␈ελv␈↓ εg␈ελv␈↓ πq␈ελv
␈β⊂o␈↓ ↓H␈εαSee␈α∞H.␈α∂H.␈α∂Laughlin,␈ε∂␈α∂AMM␈ε∩␈α∂37␈εα␈α∂(1930),␈α∂287↑293.␈α∃We␈α∂hav␈α␈e␈α∞used␈α∂this␈α∂idea␈α∂in␈α∞the
␈β⊃~␈↓ ↓H␈εαdouble-precision␈αcase␈α(Eq.␈α4.2.3↑3).
␈β∪(

␈β↓Y␈↓ ↓H␈εα262␈↓ α=␈ε∞A␈α␈RITH␈α␈METIC␈εα␈↓ 
b4.3.1
␈βα(␈↓ α␈εαBesides␈α∪the␈α∪references␈α∪just␈α∩cited,␈α∃the␈α∪follo␈α␈wing␈α∪early␈α∪articles␈α∩concerning
␈βαS␈↓ ↓H␈εαm␈α␈ultiple-precision␈αεarithmetic␈αεare␈αεof␈αεin␈α␈terest:␈α	High-precision␈αε⎇oating-poin␈α␈t␈αεroutines
␈βα}␈↓ ↓H␈εαusing␈α	ones'␈α
complemen␈α␈t␈α	arithmetic␈α
are␈α	described␈α
by␈α	A.␈α
H.␈α	Stroud␈α	and␈α
D.␈α	Secrest,
␈ββ*␈↓ ↓H␈ε∂Comp.␈α
J.␈ε∩␈α6␈εα␈α(1963),␈α62↑66.␈αExtended-precision␈α
subroutines␈αfor␈αuse␈αin␈α
F␈α␈OR␈α⎇TRAN
␈ββU␈↓ ↓H␈εαprograms␈αare␈αdescribed␈αby␈αB.␈αI.␈αBlum,␈ε∂␈αCA␈α␈CM␈ε∩␈α8␈εα␈α(1965),␈α318↑320;␈αand␈αfor␈αuse␈αin
␈β∧␈↓ ↓H␈εαAL␈α␈GOL␈αλby␈απM.␈αλTienari␈αλand␈αλV.␈αλSuok␈α␈onautio,␈ε∂␈α	BIT␈ε∩␈απ6␈εα␈αλ(1966),␈α	332↑338.␈αArithmetic␈απon
␈β∧+␈↓ ↓H␈εαin␈α␈tegers␈αwith␈ε∂␈αunlimited␈εα␈αprecision,␈αmaking␈αuse␈αof␈αlink␈α␈ed␈αmemory␈αallocation␈αtech-
␈β∧V␈↓ ↓H␈εαniques,␈αhas␈α
been␈αelegan␈α␈tly␈αdescribed␈α
by␈αG.␈αE.␈α
Collins,␈ε∂␈αCA␈α␈CM␈ε∩␈α9␈εα␈α(1966),␈α
578↑589.
␈β¬α␈↓ ↓H␈εαFor␈απa␈αεm␈α␈uch␈απlarger␈απrepertoire␈απof␈απoperations,␈αλincluding␈απlogarithms␈απand␈αεtrigonometric
␈β¬-␈↓ ↓H␈εαfunctions,␈αsee␈αR.␈αP.␈αBren␈α␈t,␈ε∂␈αA␈α␈CM␈αTrans.␈αMath.␈αSoft␈α␈ware␈ε∩␈α4␈εα␈α(1978),␈α57↑81.
␈β¬Y␈↓ α␈εαWe␈α∂hav␈α␈e␈α∂restricted␈α∂our␈α∂discussion␈α∂in␈α∂this␈α∂section␈α∂to␈α∂arithmetic␈α∞techniques
␈βε∧␈↓ ↓H␈εαfor␈αuse␈αin␈αcomputer␈αprogramming.␈αThere␈αare␈αman␈α␈y␈αalgorithms␈αfor␈ε∂␈αhardware␈εα␈αim-
␈βε/␈↓ ↓H␈εαplemen␈α␈tation␈α
of␈αarithmetic␈α
operations␈αthat␈α
are␈αv␈α␈ery␈α
in␈α␈teresting,␈αbut␈αthey␈α
appear
␈βεZ␈↓ ↓H␈εαto␈αλbe␈αλinapplicable␈αλto␈αλcomputer␈αλprograms␈α	for␈αλhigh-precision␈αλn␈α␈um␈α␈bers;␈α	for␈αλexample,
␈βπε␈↓ ↓H␈εαsee␈α∂G.␈α∂W.␈α⊂Reit␈α␈wiesner,␈α⊂\Binary␈α∂Arithmetic,"␈ε∂␈α⊂Advances␈α∂in␈α⊂Computers␈ε∩␈α∂1␈εα␈α∂(New
␈βπ1␈↓ ↓H␈εαYork:␈α
Academic␈αλPress,␈α
1960),␈α	231↑308;␈α	O.␈α	L.␈α	MacSorley,␈ε∂␈α	Proc.␈αλIRE␈ε∩␈α	49␈εα␈αλ(1961),␈α	67↑
␈βπ\␈↓ ↓H␈εα91;␈α
G.␈α
Metz,␈ε∂␈αIRE␈α
Trans.␈ε∩␈α
EC↑11␈εα␈α
(1962),␈α
76↑764;␈αH.␈α
L.␈α
Garner,␈α
\Num␈α␈ber␈α
Systems
␈βλπ␈↓ ↓H␈εαand␈αArithmetic,"␈ε∂␈αAdvances␈αin␈αComputers␈ε∩␈α6␈εα␈α(New␈αYork:␈αAcademic␈αPress,␈α1965),
␈βλ2␈↓ ↓H␈εα131↑194.␈α⊗The␈α∂minim␈α␈um␈α∂achievable␈α⊂ex␈α␈ecution␈α∂time␈α∂for␈α⊂hardware␈α∂addition␈α∂and
␈βλ↑␈↓ ↓H␈εαm␈α␈ultiplication␈αλoperations␈αλhas␈αλbeen␈αλin␈α␈v␈α␈estigated␈αλby␈αλS.␈αλWinograd,␈ε∂␈αλJA␈α␈CM␈ε∩␈αλ12␈εα␈αλ(1965),
␈β		␈↓ ↓H␈εα277↑285,␈ε∩␈α
14␈εα␈α
(1967),␈α793↑802;␈α
by␈α
R.␈α
P.␈α
Bren␈α␈t,␈ε∂␈αIEEE␈α
Trans.␈ε∩␈α
C↑19␈εα␈α
(1970),␈α
758↑759;
␈β	4␈↓ ↓H␈εαand␈αby␈αR.␈αW.␈αFlo␈α␈yd,␈ε∂␈αIEEE␈αSymp.␈αFoundations␈αComp.␈αSci.␈ε∩␈α16␈εα␈α(1975),␈α3↑5.
␈β
>␈↓ ↓H␈ε≥E␈α␈XERCI␈α↓SE␈α␈S
␈β∪␈↓ ↓g␈ε∪1.␈↓ α␈εβ[␈ε	42␈↓ α;␈εβ]␈α⊗Stu␈α␈dy␈α	the␈α
ea␈α␈rly␈α
histor␈α␈y␈α
of␈α
the␈α
cla␈α␈ssi␈α↓c␈α␈al␈α
algorith␈α␈ms␈α
for␈α
arithm␈α␈etic,␈αb␈α␈y␈α
look␈α␈ing
␈β:␈↓ ↓H␈εβu␈α␈p␈αth␈α␈e␈αwritings␈αo␈α␈f,␈αsa␈α␈y,␈αSu␈α␈n␈αTs␈↓ ¬
␈εβu␈↓ ¬∞␈εβ⊃␈↓ ¬∨␈εβ,␈αal-Kho␈α␈w␈↓ ε-␈εβ∂␈↓ ε-␈εβa␈↓ ε=␈εβrizm␈↓ εz␈εβ∂␈↓ ε}␈εβ␈↓ ππ␈εβ,␈αFib␈α␈ona␈α␈cci,␈αand␈α
Rob␈α␈ert␈αReco␈α␈rde␈α␈,␈αa␈α␈nd
␈βb␈↓ ↓H␈εβb␈α␈y␈α
tra␈α␈nslatin␈α␈g␈α
th␈α␈eir␈α
meth␈α␈ods␈α
a␈α␈s␈α
faithfu␈α␈l␈α↓ly␈α	as␈α
p␈α␈ossible␈α
in␈α␈to␈α	prec␈α␈i␈α↓se␈α	algorith␈α␈mic␈α
no␈α␈tation␈α␈.
␈β↔␈↓ ↓g␈ε∪2.␈↓ α␈εβ[␈ε	15␈↓ α;␈εβ]␈α⊗Gen␈α␈eralize␈αAlgorith␈α␈m␈αA␈α
so␈αtha␈α␈t␈α
it␈αdo␈α␈es␈α\co␈α␈l␈α↓u␈α␈mn␈αa␈α␈dd␈α␈iti␈α↓o␈α␈n,"␈αi.␈α↓e.,␈α
o␈α␈bta␈α␈i␈α↓n␈α␈s␈αthe
␈β?␈↓ ↓H␈εβsu␈α␈m␈αof␈↓ α5␈ε	m␈↓ α]␈εβno␈α␈nn␈α␈ega␈α␈ti␈α↓v␈α}e␈↓ ∧↔␈ε	n␈↓ ∧+␈εβ-plac␈α␈e␈αi␈α↓n␈α}tege␈α␈rs.␈α(Assu␈α␈me␈αth␈α␈at␈↓ π]␈ε	m␈↓ λβ␈ε↔∀␈↓ λ.␈ε	b␈↓ λ;␈εβ.)
␈βq␈↓ βN␈ε∃MIX
␈βt␈↓ ↓g␈ε∪3.␈↓ α␈εβ[␈ε	21␈↓ α;␈εβ]␈α⊗Wri␈α↓te␈απa␈↓ ∧∀␈εβpro␈α␈gram␈απf␈α↓o␈α␈r␈αλthe␈αλa␈α␈lgorith␈α␈m␈αλof␈αλex␈α}ercise␈αλ2,␈α	a␈α␈nd␈απestimate␈απi␈α↓ts␈αλru␈α␈nn␈α␈ing
␈β
≠␈↓ ↓H␈εβtime␈α
as␈αa␈αfun␈α␈ction␈α
of␈↓ ∧α␈ε	m␈↓ ∧+␈εβa␈α␈nd␈↓ ∧k␈ε	n␈↓ ∧␈␈εβ.
␈β
P␈↓ ↓g␈ε∪4.␈↓ α␈εβ[␈ε	M21␈↓ αX␈εβ]␈α⊗Giv␈α␈e␈αa␈α
form␈α␈al␈α
pro␈α␈of␈α
of␈α
t␈α␈he␈α
v␈α␈alidity␈αof␈α
Algorith␈α␈m␈α
A␈↓ λl␈εβ,␈α∞u␈α␈sing␈αthe␈α
m␈α␈etho␈α␈d␈α
o␈α␈f
␈β
x␈↓ ↓H␈εβ\␈α␈i␈α↓n␈α␈du␈α␈ctiv␈α␈e␈αa␈α␈ssertion␈α␈s"␈αex␈α␈plain␈α␈ed␈αin␈αS␈α␈ection␈α
1.2.1.
␈β∞-␈↓ ↓g␈ε∪5.␈↓ α␈εβ[␈ε	21␈↓ α;␈εβ]␈α⊗Algorith␈α␈m␈αA␈αa␈α␈dd␈α␈s␈αth␈α␈e␈αt␈α␈w␈α␈o␈αin␈α␈pu␈α␈ts␈αb␈α␈y␈αg␈α␈oing␈α
from␈α
righ␈α␈t␈α
to␈αleft,␈αb␈α␈ut␈αso␈α␈metime␈α␈s
␈β∞U␈↓ ↓H␈εβth␈α␈e␈αλdata␈αλis␈α	m␈α␈ore␈αλread␈α␈il␈α↓y␈αλa␈α␈ccessib␈α␈l␈α↓e␈αλfrom␈αλleft␈α	to␈αλrigh␈α}t.␈αDe␈α␈si␈α↓g␈α␈n␈αλan␈αλalgo␈α␈rithm␈αλtha␈α␈t␈α	p␈α␈rod␈α␈uce␈α␈s
␈β∞|␈↓ ↓H␈εβth␈α␈e␈αsa␈α␈me␈αa␈α␈nsw␈α␈er␈αa␈α␈s␈αAlgorith␈α␈m␈αA␈↓ ¬!␈εβ,␈αbu␈α␈t␈αth␈α␈at␈αge␈α␈nera␈α␈tes␈αth␈α␈e␈αd␈α␈i␈α↓g␈α␈i␈α↓ts␈α
of␈αth␈α␈e␈αan␈α␈sw␈α␈er␈αfrom␈α
l␈α↓e␈α␈ft
␈β∂$␈↓ ↓H␈εβto␈α
righ␈α}t,␈α∂go␈α␈i␈α↓n␈α␈g␈α∞b␈α␈ack␈α
to␈α
cha␈α␈ng␈α␈e␈α∞p␈α␈reviou␈α␈s␈α∞v␈α␈alues␈α
i␈α↓f␈α
a␈α∞ca␈α␈rry␈α
occu␈α␈rs␈α∞to␈α
mak␈α}e␈α∞a␈α
prev␈α␈iou␈α␈s
␈β∂L␈↓ ↓H␈εβv␈α␈alue␈α
inco␈α␈rrect.␈α_[␈ε⊂Note␈α␈:␈εβ␈αEa␈α␈rl␈α↓y␈α
Hind␈α␈u␈α
an␈α␈d␈αAra␈α␈bic␈α
man␈α}uscrip␈α␈ts␈αd␈α␈ealt␈αwith␈α
ad␈α␈dition␈α
from
␈β∂s␈↓ ↓H␈εβleft␈αto␈αrigh␈α␈t␈αin␈αthis␈αway;␈α
th␈α␈e␈α
righ␈α}t-to-left␈αadd␈α␈iti␈α↓o␈α␈n␈αalgo␈α␈ri␈α↓th␈α␈m␈αwas␈αa␈αre|n␈α␈emen␈α}t␈α
d␈α␈ue␈αto
␈β⊂≠␈↓ ↓H␈εβlat␈α␈er␈αArab␈α␈i␈α↓c␈αwriters,␈αp␈α␈erha␈α␈ps␈αb␈α␈ecau␈α␈se␈αArab␈α␈ic␈αis␈αwritte␈α␈n␈αfrom␈αrig␈α␈h␈α␈t␈αto␈αleft.]
␈β⊂L␈↓ ↓;␈ε↓x
␈β⊂P␈↓ ↓g␈ε∪6.␈↓ α␈εβ[␈ε	22␈↓ α;␈εβ]␈α⊗Design␈α
an␈αa␈α␈l␈α↓g␈α␈orithm␈α
that␈αa␈α␈dd␈α␈s␈αf␈α↓r␈α␈om␈αleft␈αto␈αrigh␈α}t␈α(a␈α␈s␈αi␈α↓n␈α
ex␈α␈erc␈α␈i␈α↓se␈α
5),␈αb␈α␈ut␈αy␈α}ou␈α␈r
␈β⊂w␈↓ ↓H␈εβa␈α␈l␈α↓g␈α␈orith␈α␈m␈α∂sho␈α␈uld␈α∞no␈α␈t␈α∂store␈α∞a␈α∂d␈α␈i␈α↓g␈α␈it␈α∂of␈α∂th␈α␈e␈α∂a␈α␈nsw␈α␈er␈α∂u␈α␈n␈α␈til␈α∂th␈α␈i␈α↓s␈α∞digit␈α∂ca␈α␈nn␈α␈ot␈α∂p␈α␈ossibly␈α∞be
␈β⊃∨␈↓ ↓H␈εβa␈α␈{␈α↓e␈α␈cted␈αby␈αfutu␈α␈re␈α
ca␈α␈rries;␈α∞th␈α␈ere␈α
is␈α
to␈αbe␈αno␈αcha␈α␈ng␈α␈i␈α↓n␈α␈g␈α
o␈α␈f␈α
an␈α}y␈α
a␈α␈nsw␈α␈er␈αdigit␈α
o␈α␈nce␈αi␈α↓t␈αha␈α␈s
␈β∪(

␈β↓Y␈↓ ↓H␈εα4.3.1␈ε∞␈↓ π⊗TH␈α␈E␈α	CLASSICA␈α␈L␈α	AL␈α␈GORITH␈α␈MS␈↓ 
v␈εα263
␈βα*␈↓ ↓H␈εβb␈α␈een␈αλstored␈α␈.␈α∃[␈ε⊂Hin␈α␈t:␈εβ␈α
Keep␈αλtrack␈αλof␈α	the␈α	n␈α}um␈α␈b␈α␈er␈α	of␈α	co␈α␈nsec␈α␈utiv␈α␈e␈α	(␈↓ λ@␈ε	b␈↓ λR␈ε↔␈␈εβ␈α¬1␈α␈)␈α↓'s␈α	th␈α␈at␈α	ha␈α␈v␈α␈e␈α	n␈α␈ot␈α	y␈α␈e␈α␈t
␈βαR␈↓ ↓H␈εβb␈α␈een␈αsto␈α␈red␈αin␈αthe␈αan␈α␈sw␈α␈er.]␈α
Th␈α␈i␈α↓s␈αsort␈αof␈αalgo␈α␈ri␈α↓th␈α␈m␈αw␈α␈ould␈αb␈α␈e␈αa␈α␈pp␈α␈rop␈α␈ri␈α↓a␈α␈te,␈αfor␈αex␈α␈amp␈α␈le,
␈βαy␈↓ ↓H␈εβin␈α	a␈α	situa␈α␈ti␈α↓o␈α␈n␈α	where␈α	th␈α␈e␈α
in␈α␈pu␈α␈t␈α
a␈α␈nd␈α	ou␈α␈tpu␈α␈t␈α	n␈α␈um␈α}bers␈α	are␈α	to␈α	be␈α	rea␈α␈d␈α	an␈α␈d␈α	wri␈α↓tte␈α␈n␈α	from␈α	l␈α↓e␈α␈ft
␈ββ!␈↓ ↓H␈εβto␈α
ri␈α↓g␈α␈h␈α␈t␈αo␈α␈n␈αma␈α␈gne␈α␈ti␈α↓c␈αt␈α␈ape␈α␈s,␈αo␈α␈r␈αi␈α↓f␈αth␈α␈ey␈αa␈α␈pp␈α␈ear␈αin␈αstra␈α␈igh␈α␈t␈αlinea␈α␈r␈αli␈α↓sts.
␈ββR␈↓ ↓g␈ε∪7.␈↓ α␈εβ[␈ε	M26␈↓ αX␈εβ]␈α⊗Det␈α␈ermine␈αλthe␈αλav␈α}erag␈α␈e␈α	n␈α␈u␈α␈m␈α␈b␈α␈er␈α	o␈α␈f␈α	times␈α	th␈α␈e␈α	a␈α␈l␈α↓g␈α␈orithm␈αλof␈αλex␈α␈erc␈α␈i␈α↓se␈αλ5␈αλwi␈α↓ll␈α	|␈α␈nd
␈ββz␈↓ ↓H␈εβth␈α␈at␈α	a␈αλca␈α␈rry␈α	m␈α␈ak␈α␈e␈α␈s␈α	it␈α	nec␈α␈essary␈αλto␈αλgo␈α	b␈α␈ac␈α␈k␈α	a␈α␈nd␈αλcha␈α␈ng␈α␈e␈↓ πX␈ε	k␈↓ πq␈εβdigits␈α	o␈α␈f␈α	the␈αλpa␈α␈rti␈α↓a␈α␈l␈α	an␈α␈sw␈α␈er,␈α
fo␈α␈r
␈β∧!␈↓ ↓H␈ε	k␈↓ ↓a␈εβ=␈α
1␈α␈,␈α
2␈α␈,␈↓ αR␈εβ.␈α¬.␈αε.␈↓ α}␈εβ,␈↓ β⊂␈ε	n␈↓ β$␈εβ.␈α(Assu␈α␈me␈αλthat␈αλbo␈α␈th␈αλinp␈α␈uts␈αλare␈αλi␈α↓n␈α␈de␈α␈pen␈α␈de␈α␈n␈α␈tly␈αλan␈α␈d␈αλun␈α␈i␈α↓fo␈α␈rmly␈αλdistribu␈α␈ted
␈β∧E␈↓ β1␈εn
␈β∧I␈↓ ↓H␈εβb␈α␈et␈α␈w␈α␈een␈α
0␈αan␈α␈d␈↓ β$␈ε	b␈↓ βI␈ε↔␈␈εβ␈απ1.)
␈β∧w␈↓ βv␈ε∃MIX
␈β∧z␈↓ ↓g␈ε∪8.␈↓ α␈εβ[␈ε	M26␈↓ αX␈εβ]␈α⊗Write␈α∞a␈↓ ∧B␈εβprog␈α␈ram␈α
f␈α↓o␈α␈r␈α∞th␈α␈e␈α∞algo␈α␈ri␈α↓th␈α␈m␈α∞o␈α␈f␈α∞ex␈α␈e␈α␈rcise␈α∞5,␈α∂a␈α␈nd␈α
de␈α␈termine␈α
i␈α↓t␈α␈s
␈β¬"␈↓ ↓H␈εβa␈α␈v␈α␈era␈α␈ge␈α	ru␈α␈nn␈α␈i␈α↓n␈α␈g␈α	time␈α	b␈α␈ased␈α	o␈α␈n␈α	th␈α␈e␈α	exp␈α␈ected␈αλn␈α␈u␈α␈m␈α␈be␈α␈r␈α
o␈α␈f␈α
c␈α␈arries␈α	as␈α	co␈α␈mpu␈α␈ted␈α	in␈α	t␈α␈he␈α	tex␈α␈t.
␈β¬O␈↓ ↓;␈ε↓x
␈β¬S␈↓ ↓g␈ε∪9.␈↓ α␈εβ[␈ε	21␈↓ α;␈εβ]␈α⊗Gen␈α␈eralize␈απAlgor␈α␈i␈α↓th␈α␈m␈απA␈απto␈απob␈α␈tain␈αεan␈απa␈α␈l␈α↓g␈α␈orithm␈αεtha␈α␈t␈αλa␈α␈dd␈α␈s␈απt␈α␈w␈α␈o␈↓ 	B␈ε	n␈↓ 	V␈εβ-plac␈α␈e␈απn␈α␈u␈α␈m␈α␈ber␈α␈s
␈β¬{␈↓ ↓H␈εβin␈αa␈ε⊂␈α
mix␈α␈ed␈α␈-rad␈α␈i␈α↓x␈εβ␈αn␈α␈u␈α␈m␈α␈be␈α␈r␈α
system␈α␈,␈α∞with␈α
b␈α␈ases␈↓ εf␈ε	b␈↓ ε}␈εβ,␈↓ π∃␈ε	b␈↓ π.␈εβ,␈↓ πE␈εβ.␈αε.␈α¬.␈↓ πy␈εβ(from␈αri␈α↓g␈α␈h␈α␈t␈α
to␈α
left).␈α⊃Th␈α␈u␈α␈s␈α
the
␈βε¬␈↓ εr␈εε0␈↓ π!␈εε1
␈βε"␈↓ ↓H␈εβlea␈α␈st␈α
sig␈α␈ni|ca␈α␈n␈α␈t␈α	dig␈α␈i␈α↓ts␈α	lie␈α
b␈α␈et␈α␈w␈α␈een␈α	0␈α	a␈α␈nd␈↓ ε␈ε	b␈↓ ε(␈ε↔␈␈εβ␈αε1␈α␈,␈α
the␈α	n␈α␈ext␈α	d␈α␈i␈α↓g␈α␈i␈α↓ts␈α	lie␈α
b␈α␈et␈α␈w␈α␈een␈αλ0␈α	and␈↓ 
N␈ε	b␈↓ 
l␈ε↔␈␈εβ␈αε1␈α␈,
␈βε-␈↓ ε↔␈εε0␈↓ 
Z␈εε1
␈βεJ␈↓ ↓H␈εβe␈α␈tc.;␈αcf.␈αEq.␈α4.1↑␈α␈9.
␈βε{␈↓ ↓V␈ε∪10.␈↓ α␈εβ[␈ε	18␈↓ α;␈εβ]␈α⊗Would␈αProgra␈α␈m␈αS␈αw␈α␈ork␈αp␈α␈rop␈α␈erly␈αi␈α↓f␈αthe␈αi␈α↓n␈α␈struc␈α␈ti␈α↓o␈α␈ns␈αon␈αli␈α↓n␈α␈es␈α0␈α␈6␈αand␈α0␈α␈7␈αw␈α␈ere
␈βπ#␈↓ ↓H␈εβin␈α}terch␈α␈ang␈α␈ed?␈αIf␈αth␈α␈e␈αi␈α↓n␈α␈stru␈α␈ctions␈αo␈α␈n␈αlines␈α0␈α␈5␈αan␈α␈d␈α0␈α␈6␈αw␈α␈ere␈αin␈α␈terc␈α␈ha␈α␈nge␈α␈d?
␈βπT␈↓ ↓V␈ε∪11.␈↓ α␈εβ[␈ε	10␈↓ α;␈εβ]␈α⊗Design␈α
an␈α
algo␈α␈ri␈α↓th␈α␈m␈α∞th␈α␈at␈α∞co␈α␈mp␈α␈ares␈α∞t␈α␈w␈α␈o␈α
non␈α␈ne␈α␈gativ␈α}e␈↓ λt␈ε	n␈↓ 	λ␈εβ-place␈α
i␈α↓n␈α}tege␈α␈rs␈↓ 
i␈ε	u␈↓ ␈εβ=
␈βπ|␈↓ ↓H␈εβ(␈↓ ↓S␈ε	u␈↓ ↓r␈ε	u␈↓ α_␈εβ.␈αε.␈α¬.␈↓ αD␈ε	u␈↓ αh␈εβ)␈↓ β	␈εβa␈α␈nd␈↓ βJ␈ε	v␈↓ βd␈εβ=␈α
(␈↓ ∧~␈ε	v␈↓ ∧5␈ε	v␈↓ ∧V␈εβ.␈αε.␈αε.␈↓ ¬α␈ε	v␈↓ ¬!␈εβ)␈↓ ¬8␈εβ,␈αto␈αd␈α␈eterm␈α␈i␈α↓n␈α␈e␈αwhe␈α␈ther␈↓ λ⊂␈ε	u␈↓ λ-␈εβ<␈↓ λW␈ε	v␈↓ λi␈εβ,␈↓ λ⎇␈ε	u␈↓ 	~␈εβ=␈↓ 	E␈ε	v␈↓ 	V␈εβ,␈αo␈α␈r␈↓ 
∪␈ε	u␈↓ 
1␈εβ>␈↓ 
[␈ε	v␈↓ 
m␈εβ.
␈βλε␈↓ ↓f␈εε1␈↓ αε␈εε2␈↓ αW␈εn␈↓ αs␈εb␈↓ ∧)␈εε1␈↓ ∧D␈εε2␈↓ ¬⊃␈εn␈↓ ¬,␈εb
␈βλ-␈↓ ↓V␈ε∪12.␈↓ α␈εβ[␈ε	16␈↓ α;␈εβ]␈α⊗Algorith␈α␈m␈α
S␈αassu␈α␈mes␈αtha␈α␈t␈α
w␈α␈e␈αkn␈α␈o␈α␈w␈αwhich␈αo␈α␈f␈α
th␈α␈e␈αt␈α␈wo␈αin␈α␈pu␈α␈t␈α
o␈α␈pera␈α␈nd␈α␈s␈α
is␈αthe
␈βλU␈↓ ↓H␈εβlar␈α␈ger;␈α
if␈α	this␈α	infor␈α␈mation␈αλi␈α↓s␈α	n␈α␈ot␈α	k␈α␈no␈α}wn,␈α
w␈α␈e␈α	c␈α␈ould␈αλgo␈α	a␈α␈hea␈α␈d␈α	an␈α␈d␈α	p␈α␈erform␈αλthe␈α	su␈α␈btra␈α␈ction
␈βλ|␈↓ ↓H␈εβa␈α␈n␈α␈y␈α␈way,␈α
and␈αw␈α␈e␈α
w␈α␈ould␈α|n␈α␈d␈α
th␈α␈at␈α
an␈αextra␈α\bo␈α␈rro␈α␈w"␈α
is␈α
still␈α∞p␈α␈resen␈α}t␈α
at␈α
the␈αend␈αof␈α
the
␈β	$␈↓ ↓H␈εβa␈α␈l␈α↓g␈α␈orith␈α␈m.␈αDesign␈α
a␈α␈no␈α␈ther␈α
a␈α␈l␈α↓g␈α␈orithm␈α
th␈α␈at␈α
co␈α␈uld␈α
b␈α␈e␈α
used␈α	(i␈α↓f␈α
th␈α␈ere␈α
i␈α↓s␈α
a␈α
\␈α␈bo␈α␈rro␈α␈w"␈α
p␈α␈resen␈α}t
␈β	K␈↓ ↓H␈εβa␈α␈t␈α∞t␈α␈he␈α
en␈α␈d␈α
of␈α
Al␈α↓g␈α␈orith␈α␈m␈α∞S␈α␈)␈α
to␈α
comp␈α␈lemen␈α}t␈α
(␈↓ εW␈ε	w␈↓ εy␈ε	w␈↓ π"␈εβ.␈α¬.␈αε.␈↓ πN␈ε	w␈↓ πt␈εβ)␈↓ λ_␈εβa␈α␈nd␈α
th␈α␈erefo␈α␈re␈α
to␈α
obt␈α␈ain␈α
the
␈β	V␈↓ εm␈εε1␈↓ π∂␈εε2␈↓ πd␈εn␈↓ π␈␈εb
␈β	s␈↓ ↓H␈εβa␈α␈bso␈α␈l␈α↓u␈α␈te␈αv␈α␈alue␈αo␈α␈f␈αth␈α␈e␈αd␈α␈i␈α↓{eren␈α␈ce␈αo␈α␈f␈↓ ¬A␈ε	u␈↓ ¬`␈εβa␈α␈nd␈↓ ε!␈ε	v␈↓ ε2␈εβ.
␈β
!␈↓ βT␈ε∃M␈α␈IX
␈β
$␈↓ ↓V␈ε∪13.␈↓ α␈εβ[␈ε	21␈↓ α;␈εβ]␈α⊗Wri␈α↓te␈α
a␈↓ ∧≤␈εβprog␈α␈ram␈α
tha␈α␈t␈αm␈α␈u␈α␈l␈α↓tip␈α␈l␈α↓ies␈α
(␈↓ π
␈ε	u␈↓ π,␈ε	u␈↓ πR␈εβ.␈α¬.␈αε.␈↓ π}␈ε	u␈↓ λ!␈εβ)␈↓ λB␈εβby␈↓ λr␈ε	v␈↓ 	β␈εβ,␈αwh␈α␈ere␈↓ 	w␈ε	v␈↓ 
∀␈εβis␈αa␈α
sing␈α␈l␈α↓e␈α␈-
␈β
/␈↓ π ␈εε1␈↓ π?␈εε2␈↓ λ⊃␈εn␈↓ λ,␈εb
␈β
L␈↓ ↓H␈εβp␈α␈recision␈α
n␈α␈u␈α␈m␈α␈be␈α␈r␈α∞(i.␈α↓e.,␈α∂0␈ε↔␈α
∀␈↓ ∧k␈ε	v␈↓ ¬
␈εβ<␈↓ ¬9␈ε	b␈↓ ¬G␈εβ),␈α∂p␈α␈rod␈α␈uc␈α␈i␈α↓n␈α␈g␈α∞th␈α␈e␈α∞a␈α␈nsw␈α␈er␈α∞(␈↓ λ@␈ε	w␈↓ λb␈ε	w␈↓ 	␈εβ.␈α¬.␈αε.␈↓ 	7␈ε	w␈↓ 	]␈εβ)␈↓ 	t␈εβ.␈α∪Ho␈α␈w␈α∞m␈α␈u␈α␈ch
␈β
W␈↓ λV␈εε0␈↓ λx␈εε1␈↓ 	M␈εn␈↓ 	i␈εb
␈β
t␈↓ ↓H␈εβru␈α␈nn␈α␈ing␈αtime␈α
i␈α↓s␈αre␈α␈quired␈α␈?
␈β!␈↓ ↓;␈ε↓x
␈β%␈↓ ↓V␈ε∪14.␈↓ α␈εβ[␈ε	M24␈↓ αX␈εβ]␈α⊗Giv␈α␈e␈αa␈αform␈α␈al␈α
p␈α␈roof␈αof␈αthe␈αva␈α␈l␈α↓id␈α␈i␈α↓ty␈αo␈α␈f␈α
Algo␈α␈ri␈α↓th␈α␈m␈αM␈↓ λn␈εβ,␈α
u␈α␈si␈α↓n␈α␈g␈αthe␈αmeth␈α␈od␈αo␈α␈f
␈βL␈↓ ↓H␈εβ\␈α␈i␈α↓n␈α␈du␈α␈ctiv␈α␈e␈αa␈α␈ssertion␈α␈s"␈αex␈α␈plain␈α␈ed␈αin␈αS␈α␈ection␈α
1.2.1.
␈β}␈↓ ↓V␈ε∪15.␈↓ α␈εβ[␈ε	M20␈↓ αX␈εβ]␈α⊗If␈α
w␈α␈e␈α
wish␈αto␈α
form␈αthe␈α
p␈α␈rod␈α␈uc␈α␈t␈α
of␈α
t␈α␈w␈α␈o␈↓ π9␈ε	n␈↓ πM␈εβ-p␈α␈l␈α↓a␈α␈ce␈α
fra␈α␈ctions,␈α
(.␈↓ 	X␈ε	u␈↓ 	w␈ε	u␈↓ 
≥␈εβ.␈α¬.␈αε.␈↓ 
I␈ε	u␈↓ 
l␈εβ)␈↓ ␈ε↔α
␈βλ␈↓ 	k␈εε1␈↓ 

␈εε2␈↓ 
\␈εn␈↓ 
w␈εb
␈β%␈↓ ↓H␈εβ(.␈↓ ↓\␈ε	v␈↓ ↓w␈ε	v␈↓ α_␈εβ.␈αε.␈αε.␈↓ αE␈ε	v␈↓ αd␈εβ)␈↓ αz␈εβ,␈α
an␈α␈d␈α	to␈α
o␈α␈btain␈α	on␈α␈l␈α↓y␈α	a␈α␈n␈↓ ¬P␈ε	n␈↓ ¬d␈εβ-p␈α␈l␈α↓a␈α␈ce␈α
a␈α␈pp␈α␈ro␈α␈xima␈α␈tion␈α	(.␈↓ λ5␈ε	w␈↓ λW␈ε	w␈↓ 	␈εβ.␈α¬.␈αε.␈↓ 	,␈ε	w␈↓ 	R␈εβ)␈↓ 	r␈εβto␈α
th␈α␈e␈α
res␈α␈ult,
␈β0␈↓ ↓k␈εε1␈↓ αε␈εε2␈↓ αS␈εn␈↓ αo␈εb␈↓ λK␈εε1␈↓ λm␈εε2␈↓ 	B␈εn␈↓ 	↑␈εb
␈βM␈↓ ↓H␈εβAlgo␈α␈rithm␈αλM␈α	co␈α␈uld␈αλbe␈αλused␈αλto␈αλob␈α␈tain␈αλa␈α	2␈↓ ε␈ε	n␈↓ ε∨␈εβ-p␈α␈lace␈αλansw␈α␈e␈α␈r␈α	tha␈α␈t␈α	is␈α	su␈α␈bseq␈α␈uen␈α}tly␈α	ro␈α␈un␈α␈ded␈αλto
␈βu␈↓ ↓H␈εβth␈α␈e␈α
de␈α␈si␈α↓re␈α␈d␈α
ap␈α␈pro␈α␈x␈α␈imation␈α␈.␈αBut␈α
this␈α
in␈α␈v␈α}olv␈α␈es␈α
ab␈α␈ou␈α␈t␈αt␈α␈wice␈α
a␈α␈s␈αm␈α␈u␈α␈ch␈α
w␈α␈o␈α␈rk␈α
as␈α
is␈αn␈α␈ece␈α␈ssary
␈β
≤␈↓ ↓H␈εβfo␈α␈r␈α	reaso␈α␈nab␈α␈le␈α	accu␈α␈rac␈α␈y,␈α
sin␈α␈ce␈α	the␈α	p␈α␈rod␈α␈uc␈α␈ts␈↓ ε:␈ε	u␈↓ εX␈ε	v␈↓ ε|␈εβfor␈↓ π.␈ε	i␈↓ π@␈εβ+␈↓ πf␈ε	j␈↓ π}␈εβ>␈↓ λ(␈ε	n␈↓ λA␈εβ+␈α¬2␈α	co␈α␈n␈α␈tribu␈α␈te␈α	v␈α␈e␈α␈ry␈α	littl␈α↓e
␈β
'␈↓ εN␈εi␈↓ εg␈εj
␈β
D␈↓ ↓H␈εβto␈α
the␈αa␈α␈nsw␈α␈er.
␈β
k␈↓ α␈εβGiv␈α␈e␈αa␈α␈n␈αestima␈α␈te␈αof␈αth␈α␈e␈αma␈α␈xim␈α␈um␈α
error␈αth␈α␈at␈αca␈α␈n␈αo␈α␈ccur,␈αif␈αthes␈α␈e␈αpro␈α␈du␈α␈cts␈↓ 
@␈ε	u␈↓ 
↑␈ε	v␈↓ ∧␈εβfo␈α␈r
␈β
v␈↓ 
S␈εi␈↓ 
m␈εj
␈β∞∪␈↓ ↓H␈ε	i␈↓ ↓Z␈εβ+␈↓ α␈ε	j␈↓ α_␈εβ>␈↓ αC␈ε	n␈↓ α\␈εβ+␈αε2␈α	a␈α␈re␈α
n␈α␈ot␈α	com␈α␈pu␈α␈ted␈α	du␈α␈ring␈α	th␈α␈e␈α
m␈α␈u␈α␈ltiplication␈α␈,␈α
bu␈α␈t␈α
a␈α␈re␈α
a␈α␈ssum␈α␈ed␈α	to␈α	be␈α	zero␈α␈.
␈β∞@␈↓ ↓;␈ε↓x
␈β∞D␈↓ ↓V␈ε∪16.␈↓ α␈εβ[␈ε	20␈↓ α;␈εβ]␈α⊗Design␈α	an␈α
a␈α␈l␈α↓g␈α␈orithm␈α
th␈α␈at␈α
d␈α␈i␈α↓v␈α␈ides␈α
a␈α
n␈α␈on␈α␈neg␈α␈ativ␈α␈e␈↓ λ⊗␈ε	n␈↓ λ*␈εβ-p␈α␈l␈α↓a␈α␈ce␈α
in␈α␈teg␈α␈er␈α
(␈↓ 
↓␈ε	u␈↓ 
!␈ε	u␈↓ 
F␈εβ.␈αε.␈αε.␈↓ 
s␈ε	u␈↓ ⊗␈εβ)
␈β∞O␈↓ 
∃␈εε1␈↓ 
4␈εε2␈↓ ε␈εn␈↓ !␈εb
␈β∞l␈↓ ↓H␈εβb␈α␈y␈↓ ↓z␈ε	v␈↓ α␈εβ,␈α∞where␈↓ β¬␈ε	v␈↓ β#␈εβis␈α∞a␈α
s␈α␈i␈α↓n␈α␈gle-pr␈α␈ecisi␈α↓o␈α␈n␈α
n␈α}um␈α␈b␈α␈er␈α
(i␈α↓.e.,␈α∞0␈α<␈↓ π`␈ε	v␈↓ π␈␈εβ<␈↓ λ-␈ε	b␈↓ λ:␈εβ),␈α∞pro␈α␈du␈α␈cing␈α
th␈α␈e␈α
qu␈α␈otien␈α}t
␈β∂∪␈↓ ↓H␈εβ(␈↓ ↓S␈ε	w␈↓ ↓u␈ε	w␈↓ α≡␈εβ.␈α¬.␈αε.␈↓ αJ␈ε	w␈↓ αp␈εβ)␈↓ β∩␈εβa␈α␈nd␈α
remain␈α␈der␈↓ ∧p␈ε	r␈↓ ∧}␈εβ.
␈β∂≡␈↓ ↓i␈εε1␈↓ α␈εε2␈↓ α`␈εn␈↓ α|␈εb
␈β∂E␈↓ ↓V␈ε∪17.␈↓ α␈εβ[␈ε	M20␈↓ αX␈εβ]␈α⊗In␈α
th␈α␈e␈α
n␈α␈otation␈α	of␈α
Fi␈α↓g␈α␈.␈α6␈α␈,␈αa␈α␈ssume␈α
th␈α␈at␈↓ π"␈ε	v␈↓ πF␈ε↔∃␈α
b␈↓ π}␈ε	b␈↓ λ␈εβ/2␈ε↔␈α␈c␈εβ;␈αsh␈α␈o␈α␈w␈α
that␈α
if␈↓ 
∧␈ε	u␈↓ 
-␈εβ=␈↓ 
X␈ε	v␈↓ 
s␈εβ,␈αw␈α␈e
␈β∂O␈↓ π0␈εε1␈↓ 
↔␈εε0␈↓ 
f␈εε1
␈β∂l␈↓ ↓H␈εβm␈α}ust␈αh␈α␈av␈α␈e␈↓ αi␈ε	q␈↓ β↓␈εβ=␈↓ β+␈ε	b␈↓ β@␈ε↔␈␈εβ␈απ1␈αor␈↓ ∧-␈ε	b␈↓ ∧B␈ε↔␈␈εβ␈απ2.
␈β⊂~␈↓ π→␈ε~0␈↓ 
Z␈ε~0
␈β⊂≡␈↓ ↓V␈ε∪18.␈↓ α␈εβ[␈ε	M20␈↓ αX␈εβ]␈α⊗In␈απthe␈απno␈α␈tation␈απof␈απF␈α↓ig.␈αλ6␈α␈,␈α	sh␈α␈o␈α␈w␈αλth␈α␈at␈αλif␈↓ π␈ε	q␈↓ π)␈εβ=␈ε↔␈α
b␈εβ(␈↓ πl␈ε	u␈↓ λ␈ε	b␈↓ λ≠␈εβ+␈↓ λ@␈ε	u␈↓ λ←␈εβ)␈α↓/␈α␈(␈↓ 	ε␈ε	v␈↓ 	$␈εβ+␈α∧1␈α␈)␈ε↔c␈εβ,␈α	the␈α␈n␈↓ 
L␈ε	q␈↓ 
j␈ε↔∀␈↓ ∀␈ε	q␈↓ #␈εβ.
␈β⊂(␈↓ π␈␈εε0␈↓ λS␈εε1␈↓ 	∃␈εε1
␈β⊂K␈↓ ↓;␈ε↓x
␈β⊂O␈↓ ↓V␈ε∪19.␈↓ α␈εβ[␈ε	M21␈↓ αX␈εβ]␈α⊗In␈α∂t␈α␈he␈α∂n␈α␈otatio␈α␈n␈α∂of␈α∂Fig.␈α∂6,␈α⊂l␈α↓e␈α␈t␈↓ ε;␈εβ∂␈↓ ε;␈ε	q␈↓ εY␈εβbe␈α∂a␈α␈n␈α∂ap␈α␈pro␈α}xima␈α␈ti␈α↓o␈α␈n␈α∂to␈↓ 	L␈ε	q␈↓ 	Z␈εβ,␈α⊃a␈α␈nd␈α∂let␈↓ 
l␈εβ∂␈↓ 
m␈ε	r␈↓ ␈εβ=
␈β⊂w␈↓ ↓H␈ε	u␈↓ ↓g␈ε	b␈↓ ↓|␈εβ+␈↓ α&␈ε	u␈↓ αM␈ε↔␈␈↓ αu␈εβ∂␈↓ αv␈ε	q␈↓ β¬␈ε	v␈↓ β ␈εβ.␈α∞Assu␈α␈me␈αth␈α␈at␈↓ ∧z␈ε	v␈↓ ¬ ␈εβ>␈α0␈α␈.␈α∞S␈α␈ho␈α␈w␈αtha␈α␈t␈αif␈↓ π4␈ε	v␈↓ πO␈εβ∂␈↓ πP␈ε	q␈↓ πi␈εβ>␈↓ λ∀␈ε	b␈↓ λ!␈εβ∂␈↓ λ"␈ε	r␈↓ λ8␈εβ+␈↓ λa␈ε	u␈↓ 	↓␈εβ,␈αthe␈α␈n␈↓ 	c␈ε	q␈↓ 	|␈εβ<␈↓ 
'␈εβ∂␈↓ 
(␈ε	q␈↓ 
6␈εβ.␈α≠[␈ε⊂Hi␈α↓n␈α}t:
␈β⊃↓␈↓ ↓[␈εε0␈↓ α9␈εε1␈↓ β∀␈εε1␈↓ ¬	␈εε1␈↓ πC␈εε2␈↓ λt␈εε2
␈β⊃≡␈↓ ↓H␈εβS␈α␈tren␈α␈gth␈α␈en␈αth␈α␈e␈αpro␈α␈of␈αof␈αThe␈α␈orem␈αA␈αb␈α␈y␈αex␈α␈amin␈α␈i␈α↓n␈α␈g␈αth␈α␈e␈αin⎇␈α␈uen␈α␈ce␈αof␈↓ 	∃␈ε	v␈↓ 	0␈εβ.]
␈β⊃)␈↓ 	#␈εε2
␈β∪(

␈β↓Y␈↓ ↓H␈εα264␈↓ α=␈ε∞A␈α␈RITH␈α␈METIC␈εα␈↓ 
b4.3.1
␈βα*␈↓ ↓V␈ε∪20.␈↓ α␈εβ[␈ε	M22␈↓ αX␈εβ]␈α⊗Using␈α¬th␈α␈e␈αεno␈α␈tation␈α¬an␈α␈d␈α¬assum␈α␈ption␈α␈s␈αεof␈α¬ex␈α␈erc␈α␈i␈α↓se␈α¬19,␈απsh␈α␈o␈α␈w␈αεth␈α␈at␈αεif␈↓ 	h␈ε	v␈↓ 
α␈εβ∂␈↓ 
β␈ε	q␈↓ 
≠␈ε↔∀␈↓ 
F␈ε	b␈↓ 
R␈εβ∂␈↓ 
S␈ε	r␈↓ 
b␈εβ+␈↓ β␈ε	u␈↓ #␈εβ,
␈βα5␈↓ 	v␈εε2␈↓ ↔␈εε2
␈βαR␈↓ ↓H␈εβth␈α␈en␈↓ α∪␈εβ∂␈↓ α∪␈ε	q␈↓ α,␈εβ=␈↓ αV␈ε	q␈↓ αp␈εβor␈↓ β→␈ε	q␈↓ β1␈εβ=␈↓ βZ␈εβ∂␈↓ β[␈ε	q␈↓ βq␈ε↔␈␈εβ␈αλ1.
␈ββπ␈↓ ↓;␈ε↓x
␈ββ␈↓ ↓V␈ε∪21.␈↓ α␈εβ[␈ε	M23␈↓ αX␈εβ]␈α⊗S␈α␈ho␈α␈w␈α
tha␈α␈t␈αif␈↓ ∧5␈ε	v␈↓ ∧Z␈ε↔∃␈α	b␈↓ ¬⊃␈ε	b␈↓ ¬≡␈εβ/2␈ε↔c␈εβ,␈αa␈α␈nd␈α
if␈↓ ε@␈ε	v␈↓ ε[␈εβ∂␈↓ ε\␈ε	q␈↓ εt␈ε↔∀␈↓ π≡␈ε	b␈↓ π*␈εβ∂␈↓ π+␈ε	r␈↓ πA␈εβ+␈↓ πi␈ε	u␈↓ λ∀␈εβb␈α␈ut␈↓ λO␈εβ∂␈↓ λP␈ε	q␈↓ λh␈ε↔≤␈↓ 	∪␈ε	q␈↓ 	,␈εβi␈α↓n␈α
th␈α␈e␈αn␈α␈otatio␈α␈n␈αo␈α␈f
␈ββ∃␈↓ ∧D␈εε1␈↓ εO␈εε2␈↓ π|␈εε2
␈ββ2␈↓ ↓H␈εβe␈α␈x␈α␈ercises␈αε19␈απa␈α␈nd␈αε20,␈αλth␈α␈en␈↓ ∧*␈ε	u␈↓ ∧@␈ε↔␈␈↓ ∧d␈ε	q␈↓ ∧r␈ε	v␈↓ ¬
␈ε↔∃␈εβ␈α	(␈α↓1␈ε↔␈α↓␈␈εβ␈αα3/␈↓ ε~␈ε	b␈↓ ε'␈εβ)␈↓ ε2␈ε	v␈↓ εC␈εβ.␈α
(The␈απlatt␈α␈er␈απev␈α␈e␈α␈n␈α␈t␈απoc␈α␈curs␈αεw␈α↓ith␈αεap␈α␈pro␈α␈x␈α␈imate
␈ββZ␈↓ ↓H␈εβp␈α␈rob␈α␈ab␈α␈i␈α↓lity␈α3␈α␈/␈↓ β∃␈ε	b␈↓ β"␈εβ,␈αs␈α␈o␈αtha␈α␈t␈αwhen␈↓ ∧}␈ε	b␈↓ ¬↔␈εβis␈αth␈α␈e␈αw␈α␈ord␈αsize␈α
of␈αa␈αco␈α␈mpu␈α␈ter␈αw␈α␈e␈αm␈α␈u␈α␈st␈αha␈α␈v␈α␈e␈↓ 
+␈ε	q␈↓ 
L␈εβ=␈↓ 
v␈εβ∂␈↓ 
w␈ε	q␈↓ ⊃␈εβin
␈ββe␈↓ 
7␈εj
␈β∧α␈↓ ↓H␈εβAlgo␈α␈rithm␈αD␈αex␈α}cep␈α␈t␈αi␈α↓n␈α
v␈α␈e␈α␈ry␈αrare␈α
ci␈α↓r␈α␈cums␈α␈tanc␈α␈es.)
␈β∧7␈↓ ↓;␈ε↓x
␈β∧;␈↓ ↓V␈ε∪22.␈↓ α␈εβ[␈ε	24␈↓ α;␈εβ]␈α⊗Fi␈α↓n␈α␈d␈α
an␈α
exa␈α␈mple␈α
of␈αa␈α
four-d␈α␈igit␈αn␈α␈u␈α␈m␈α␈b␈α␈er␈αd␈α␈i␈α↓v␈α␈ided␈α
by␈α
a␈α
three␈α␈-digit␈αn␈α}um␈α␈b␈α␈er␈αfo␈α␈r
␈β∧b␈↓ ↓H␈εβwh␈α␈ich␈αstep␈α
D6␈αis␈αne␈α␈cessar␈α␈y␈αin␈αAlgor␈α␈i␈α↓th␈α␈m␈αD␈↓ ε9␈εβ,␈αwhen␈α
the␈αra␈α␈bix␈↓ λ5␈ε	b␈↓ λM␈εβis␈α10␈α␈.
␈β¬≠␈↓ ↓V␈ε∪23.␈↓ α␈εβ[␈ε	M23␈↓ αX␈εβ]␈α⊗Giv␈α␈e␈α␈n␈αth␈α␈at␈↓ ∧"␈ε	v␈↓ ∧?␈εβan␈α␈d␈↓ ¬↓␈ε	b␈↓ ¬~␈εβa␈α␈re␈αin␈α␈teg␈α␈ers,␈αand␈αth␈α␈at␈α1␈ε↔␈α
∀␈↓ λ)␈ε	v␈↓ λE␈εβ<␈↓ λq␈ε	b␈↓ λ}␈εβ,␈α
p␈α␈ro␈α␈v␈α}e␈αtha␈α␈t␈ε↔␈αb␈↓ 
E␈ε	b␈↓ 
R␈εβ/2␈ε↔c␈α
∀
␈β¬C␈↓ ↓H␈ε	v␈↓ ↓Y␈ε↔b␈↓ ↓f␈ε	b␈↓ ↓s␈εβ/(␈↓ α∂␈ε	v␈↓ α(␈εβ+␈απ1)␈ε↔c␈εβ␈α	<␈α
(␈↓ β8␈ε	v␈↓ βQ␈εβ+␈απ1)␈ε↔b␈↓ ∧"␈ε	b␈↓ ∧/␈εβ/(␈↓ ∧K␈ε	v␈↓ ∧d␈εβ+␈αλ1␈α␈)␈ε↔c␈α
∀␈↓ ¬i␈ε	b␈↓ ¬v␈εβ.
␈β¬|␈↓ ↓V␈ε∪24.␈↓ α␈εβ[␈ε	M20␈↓ αX␈εβ]␈α⊗Using␈απthe␈απl␈α↓a␈α␈w␈αλof␈αλth␈α␈e␈αλdistrib␈α␈ution␈απof␈αλlead␈α␈ing␈απdigits␈αλex␈α␈plain␈α␈ed␈αλin␈απSec␈α␈ti␈α↓o␈α␈n␈αλ4␈α␈.␈α↓2␈α␈.␈α↓4␈α␈,
␈βε#␈↓ ↓H␈εβg␈α␈i␈α↓v␈α}e␈α
an␈αap␈α␈pro␈α}ximat␈α␈e␈α
form␈α␈u␈α␈l␈α↓a␈αfor␈α
th␈α␈e␈α
pro␈α␈ba␈α␈bili␈α↓ty␈αtha␈α␈t␈↓ πh␈ε	d␈↓ λπ␈εβ=␈α
1␈αi␈α↓n␈αAlgorith␈α␈m␈α
D.␈α
(W␈α↓h␈α␈en
␈βεK␈↓ ↓H␈ε	d␈↓ ↓c␈εβ=␈α
1,␈αit␈αis,␈αo␈α␈f␈αc␈α␈our␈α␈se,␈αp␈α␈ossib␈α␈l␈α↓e␈αt␈α␈o␈αomit␈αmo␈α␈st␈αof␈αthe␈αc␈α␈alcula␈α␈ti␈α↓o␈α␈n␈αin␈αste␈α␈ps␈αD1␈αa␈α␈nd␈α
D8.)
␈βπ↓␈↓ βT␈ε∃MIX
␈βπ∧␈↓ ↓V␈ε∪25.␈↓ α␈εβ[␈ε	26␈↓ α;␈εβ]␈α⊗Wri␈α↓te␈α
a␈↓ ∧≥␈εβrout␈α␈i␈α↓n␈α␈e␈αfor␈αstep␈α
D1,␈αwhich␈α
i␈α↓s␈αn␈α␈eed␈α␈ed␈αto␈α
comp␈α␈lete␈αProgr␈α␈am␈αD.
␈βπ:␈↓ βT␈ε∃MIX
␈βπ=␈↓ ↓V␈ε∪26.␈↓ α␈εβ[␈ε	21␈↓ α;␈εβ]␈α⊗Wri␈α↓te␈α
a␈↓ ∧≥␈εβrout␈α␈i␈α↓n␈α␈e␈αfor␈αstep␈α
D8,␈αwhich␈α
i␈α↓s␈αn␈α␈eed␈α␈ed␈αto␈α
comp␈α␈lete␈αProgr␈α␈am␈αD.
␈βπv␈↓ ↓V␈ε∪27.␈↓ α␈εβ[␈ε	M20␈↓ αX␈εβ]␈α⊗Pro␈α␈v␈α}e␈αt␈α␈hat␈αat␈αth␈α␈e␈αbeg␈α␈i␈α↓n␈α␈nin␈α␈g␈αof␈αstep␈αD8␈αin␈αAlgor␈α␈i␈α↓th␈α␈m␈αD␈↓ 	~␈εβ,␈αth␈α␈e␈αun␈α␈no␈α␈rmalized
␈βλ≡␈↓ ↓H␈εβre␈α␈maind␈α␈er␈α(␈↓ αp␈ε	u␈↓ β@␈ε	u␈↓ ∧⊗␈εβ.␈αε.␈αε.␈↓ ∧B␈ε	u␈↓ ¬⊗␈εβ)␈↓ ¬8␈εβis␈αalwa␈α␈ys␈αan␈α
exa␈α␈ct␈αm␈α␈u␈α␈l␈α↓tip␈α␈l␈α↓e␈α
of␈↓ λv␈ε	d␈↓ 		␈εβ.
␈βλ(␈↓ ββ␈εm␈↓ β~␈εε+␈α↓1␈↓ βS␈εm␈↓ βk␈εε+2␈↓ ∧V␈εm␈↓ ∧m␈εε+␈↓ ¬ε␈εn␈↓ ¬!␈εb
␈βλW␈↓ ↓V␈ε∪28.␈↓ α␈εβ[␈ε	M30␈↓ αX␈εβ]␈α⊗(A.␈α
Sv␈α}ob␈α␈oda␈α␈,␈ε⊂␈α∞S␈α␈troje␈α
n␈α␈a␈α
Zprac␈α␈o␈α␈v␈↓ εL␈ε⊂∞␈↓ εL␈ε⊂a␈↓ ε\␈ε⊂n␈↓ εk␈ε⊂∞␈↓ εo␈ε⊂␈↓ π¬␈ε⊂Info␈α␈rmac␈↓ λβ␈ε⊂∞␈↓ λε␈ε⊂␈↓ λ≥␈ε∪9␈εβ␈α(196␈α␈3),␈α∞25␈α␈↑3␈α␈2.)␈α≥L␈α↓e␈α␈t␈↓ 
m␈ε	v␈↓ ␈εβ=
␈βλ}␈↓ ↓H␈εβ(␈↓ ↓S␈ε	v␈↓ ↓n␈ε	v␈↓ α∂␈εβ.␈αε.␈α¬.␈↓ α;␈ε	v␈↓ αZ␈εβ)␈↓ α|␈εβb␈α␈e␈αan␈α}y␈αra␈α␈dix␈↓ ∧?␈ε	b␈↓ ∧W␈εβin␈α␈teg␈α␈er,␈αwhere␈↓ ε/␈ε	v␈↓ εS␈ε↔≤␈εβ␈α
0␈α␈.␈αPerfor␈α␈m␈αthe␈αfo␈α␈l␈α↓lo␈α␈win␈α␈g␈αop␈α␈eration␈α␈s:
␈β		␈↓ ↓a␈εε1␈↓ ↓⎇␈εε2␈↓ αJ␈εn␈↓ αe␈εb␈↓ ε=␈εε1
␈β	7␈↓ ↓M␈ε∪N1.␈↓ α␈εβIf␈↓ α2␈ε	v␈↓ α←␈εβ<␈↓ β∩␈ε	b␈↓ β∨␈εβ/2␈α␈,␈α∩m␈α}ultiply␈↓ ∧f␈ε	v␈↓ ¬π␈εβb␈α␈y␈ε↔␈α⊂b␈εβ(␈↓ ¬T␈ε	b␈↓ ¬l␈εβ+␈α1)/␈α␈(␈↓ εO␈ε	v␈↓ εu␈εβ+␈α1)␈ε↔c␈εβ.␈α~Let␈α⊂th␈α␈e␈α⊂resu␈α␈l␈α↓t␈α⊂o␈α␈f␈α⊂this␈α⊂step␈α∂be
␈β	B␈↓ αA␈εε1␈↓ ε↑␈εε1
␈β	←␈↓ α␈εβ(␈↓ α↔␈ε	v␈↓ α2␈ε	v␈↓ αN␈ε	v␈↓ αo␈εβ.␈α¬.␈αε.␈↓ β≠␈ε	v␈↓ β:␈εβ)␈↓ βP␈εβ.
␈β	j␈↓ α&␈εε0␈↓ αA␈εε1␈↓ α\␈εε2␈↓ β*␈εn␈↓ βE␈εb
␈β
_␈↓ ↓M␈ε∪N2.␈↓ α␈εβIf␈↓ α0␈ε	v␈↓ αY␈εβ=␈α∞0␈α␈,␈α∂set␈↓ βf␈ε	v␈↓ ∧¬␈ε↔ ␈↓ ∧4␈ε	v␈↓ ∧O␈εβ+␈α	(1/␈↓ ¬&␈ε	b␈↓ ¬3␈εβ)␈ε↔b␈↓ ¬K␈ε	b␈↓ ¬X␈εβ(␈↓ ¬c␈ε	b␈↓ ¬z␈ε↔␈␈↓ ε$␈ε	v␈↓ ε?␈εβ)␈α↓/␈α␈(␈↓ εf␈ε	v␈↓ π␈εβ+␈α	1)␈ε↔c␈↓ π↑␈ε	v␈↓ πo␈εβ;␈α⊂let␈α
the␈α
resu␈α␈l␈α↓t␈α
of␈α∞th␈α␈i␈α↓s␈α
step␈α
be
␈β
#␈↓ α?␈εε0␈↓ ε3␈εε1␈↓ εu␈εε1
␈β
@␈↓ α␈εβ(␈↓ α↔␈ε	v␈↓ α2␈ε	v␈↓ αN␈ε	v␈↓ αo␈εβ.␈α¬.␈αε.␈↓ β≠␈ε	v␈↓ β:␈εβ.␈↓ βC␈ε	v␈↓ ∧∞␈εβ.␈α¬.␈αε.␈↓ ∧:␈εβ)␈↓ ∧P␈εβ.␈αRepea␈α␈t␈αstep␈αN␈α␈2␈αun␈α}til␈↓ π!␈ε	v␈↓ πE␈ε↔≤␈εβ␈α
0.
␈β
J␈↓ α&␈εε0␈↓ αA␈εε1␈↓ α\␈εε2␈↓ β*␈εn␈↓ βR␈εn␈↓ βb␈εε+1␈↓ ∧E␈εb␈↓ π0␈εε0
␈β
y␈↓ ↓H␈εβPro␈α␈v␈α}e␈α
th␈α␈at␈α
ste␈α␈p␈α
N2␈αwil␈α↓l␈α
b␈α␈e␈α
p␈α␈erforme␈α␈d␈α
a␈α␈t␈α
mos␈α␈t␈α
thre␈α␈e␈α
times,␈α
an␈α␈d␈α
th␈α␈at␈α
w␈α␈e␈αm␈α␈ust␈αalway␈α␈s
␈β ␈↓ ↓H␈εβh␈α␈av␈α}e␈↓ α⊗␈ε	v␈↓ α;␈εβ=␈α	1,␈↓ β
␈ε	v␈↓ β/␈εβ=␈α	0␈αat␈αth␈α␈e␈αend␈α
of␈αth␈α␈e␈αcalcu␈α␈l␈α↓a␈α␈tions.
␈β+␈↓ α%␈εε0␈↓ β→␈εε1
␈βJ␈↓ α␈εβ[␈ε⊂Note:␈εβ␈α∞If␈↓ β⊗␈ε	u␈↓ β7␈εβa␈α␈nd␈↓ βy␈ε	v␈↓ ∧↔␈εβa␈α␈re␈α
b␈α␈oth␈αm␈α␈u␈α␈l␈α↓tip␈α␈l␈α↓ied␈αb␈α␈y␈αthe␈αab␈α␈o␈α␈v␈α␈e␈αcon␈α␈stan␈α}ts,␈α
we␈αdo␈αn␈α␈ot␈α
c␈α␈ha␈α␈nge
␈βq␈↓ ↓H␈εβth␈α␈e␈α⊃valu␈α␈e␈α∩o␈α␈f␈α∩the␈α⊃qu␈α␈otien␈α}t␈↓ ∧]␈ε	u␈↓ ∧q␈εβ/␈↓ ¬α␈ε	v␈↓ ¬∪␈εβ,␈α∪and␈α⊃th␈α␈e␈α⊃divisor␈α⊃ha␈α␈s␈α∩b␈α␈een␈α⊃co␈α␈n␈α␈v␈α␈e␈α␈rted␈α⊃in␈α␈to␈α⊃the␈α⊃form
␈β→␈↓ ↓H␈εβ(1␈α␈0␈↓ ↓t␈ε	v␈↓ α∃␈εβ.␈αε.␈α¬.␈↓ αA␈ε	v␈↓ α`␈εβ.␈↓ αj␈ε	v␈↓ β.␈ε	v␈↓ βs␈ε	v␈↓ ∧8␈εβ)␈↓ ∧N␈εβ.␈αThis␈α
form␈α
o␈α␈f␈αth␈α␈e␈α
div␈α␈i␈α↓so␈α␈r␈α
i␈α↓s␈α
v␈α}ery␈α
co␈α␈n␈α␈v␈α␈e␈α␈nien␈α}t␈αb␈α␈eca␈α␈use,␈α
in␈α
the
␈β#␈↓ αβ␈εε2␈↓ αP␈εn␈↓ αx␈εn␈↓ β	␈εε+1␈↓ β=␈εn␈↓ βM␈εε+␈α↓2␈↓ ∧α␈εn␈↓ ∧∩␈εε+3␈↓ ∧C␈εb
␈β@␈↓ ↓H␈εβn␈α␈ota␈α␈ti␈α↓o␈α␈n␈α	of␈α	Al␈α↓g␈α␈orithm␈α	D␈↓ ∧(␈εβ,␈α
w␈α␈e␈α	ma␈α␈y␈α	simply␈α	ta␈α␈k␈α␈e␈↓ εb␈εβ∂␈↓ εc␈ε	q␈↓ ε{␈εβ=␈↓ π&␈ε	u␈↓ πN␈εβas␈α	a␈α	trial␈α
d␈α␈i␈α↓v␈α␈isor␈α	at␈α	the␈α	b␈α␈eginn␈α␈ing
␈βK␈↓ π9␈εj
␈βh␈↓ ↓H␈εβo␈α␈f␈αstep␈αD3␈α␈,␈αo␈α␈r␈↓ β≠␈εβ∂␈↓ β≤␈ε	q␈↓ β4␈εβ=␈↓ β←␈ε	b␈↓ βt␈ε↔␈␈εβ␈απ1␈αwhe␈α␈n␈α(␈↓ ¬~␈ε	u␈↓ ¬←␈εβ,␈↓ ¬n␈ε	u␈↓ ε
␈εβ)␈α	=␈α
(1,␈α¬0).]
␈βs␈↓ ¬-␈εj␈↓ ¬9␈ε~␈␈εε1␈↓ ε↓␈εj
␈β
!␈↓ ↓V␈ε∪29.␈↓ α␈εβ[␈ε	15␈↓ α;␈εβ]␈α⊗Pro␈α␈v␈α␈e␈αor␈αdispr␈α␈o␈α␈v␈α␈e:␈α∞At␈α
t␈α␈he␈αbeg␈α␈i␈α↓n␈α␈nin␈α␈g␈α
o␈α␈f␈α
step␈αD7␈αo␈α␈f␈α
Algorith␈α␈m␈α
D␈↓ 
α␈εβ,␈α
w␈α␈e␈αalway␈α␈s
␈β
I␈↓ ↓H␈εβh␈α␈av␈α}e␈↓ α⊗␈ε	u␈↓ α?␈εβ=␈α	0.
␈β
S␈↓ α)␈εj
␈β
}␈↓ ↓;␈ε↓x
␈β∞α␈↓ ↓V␈ε∪30.␈↓ α␈εβ[␈ε	22␈↓ α;␈εβ]␈α⊗If␈αm␈α␈emo␈α␈ry␈α
spa␈α␈ce␈α
is␈α
l␈α↓imited␈α␈,␈αit␈α
ma␈α␈y␈α
be␈α
d␈α␈esirab␈α␈le␈α
to␈α
use␈α
t␈α␈he␈α
sam␈α␈e␈α
stora␈α␈ge␈α
loca␈α␈-
␈β∞)␈↓ ↓H␈εβtio␈α␈ns␈αfor␈αbo␈α␈th␈αinp␈α␈ut␈αa␈α␈nd␈αo␈α␈utp␈α␈ut␈αd␈α␈urin␈α␈g␈αthe␈αp␈α␈erform␈α␈anc␈α␈e␈αof␈αsome␈αo␈α␈f␈α
t␈α␈he␈αalgo␈α␈rithms␈αin
␈β∞Q␈↓ ↓H␈εβth␈α␈is␈α
sec␈α␈ti␈α↓o␈α␈n.␈α∂I␈α↓s␈αit␈α
p␈α␈ossible␈αto␈αha␈α␈v␈α␈e␈↓ ¬E␈ε	w␈↓ ¬h␈εβ,␈↓ ¬}␈εβ.␈αε.␈αε.␈↓ ε+␈εβ,␈↓ εA␈ε	w␈↓ εt␈εβsto␈α␈red␈αin␈αthe␈αsame␈αresp␈α␈ectiv␈α}e␈α
loc␈α␈ation␈α␈s
␈β∞[␈↓ ¬[␈εε1␈↓ εW␈εn
␈β∞x␈↓ ↓H␈εβa␈α␈s␈↓ ↓s␈ε	u␈↓ α∪␈εβ,␈↓ α+␈εβ.␈α¬.␈αε.␈↓ αW␈εβ,␈↓ αo␈ε	u␈↓ β ␈εβor␈↓ βK␈ε	v␈↓ βg␈εβ,␈↓ β}␈εβ.␈αε.␈αε.␈↓ ∧+␈εβ,␈↓ ∧B␈ε	v␈↓ ∧o␈εβdu␈α␈ring␈α
Al␈α↓g␈α␈orithm␈α
A␈α∞or␈α
S␈↓ πa␈εβ?␈α∪Is␈α∞it␈α∞po␈α␈ssible␈α∞to␈α
ha␈α␈v␈α␈e␈↓ 
F␈ε	q␈↓ 
←␈εβ,␈↓ 
w␈εβ.␈αε.␈α¬.␈↓ #␈εβ,
␈β∂β␈↓ αε␈εε1␈↓ βα␈εn␈↓ βZ␈εε1␈↓ ∧Q␈εn␈↓ 
R␈εε0
␈β∂ ␈↓ ↓H␈ε	q␈↓ ↓w␈εβo␈α␈ccu␈α␈py␈αthe␈αsam␈α␈e␈αloca␈α␈tions␈αas␈↓ ¬*␈ε	u␈↓ ¬J␈εβ,␈↓ ¬←␈εβ.␈αε.␈αε.␈↓ ε␈εβ,␈↓ ε!␈ε	u␈↓ εW␈εβin␈αAl␈α↓g␈α␈orithm␈αD␈↓ λ8␈εβ?␈α
Is␈αthere␈αan␈α}y␈αperm␈α␈i␈α↓ssib␈α␈l␈α↓e
␈β∂+␈↓ ↓T␈εm␈↓ ¬>␈εε0␈↓ ε4␈εm
␈β∂H␈↓ ↓H␈εβo␈α}v␈α␈erlap␈α
of␈αmem␈α␈ory␈αlo␈α␈cation␈α␈s␈αbet␈α␈w␈α␈ee␈α␈n␈αinp␈α␈ut␈αa␈α␈nd␈α
outp␈α␈ut␈αin␈α
A␈α↓lg␈α␈orithm␈αM␈α␈?
␈β⊂↓␈↓ ↓V␈ε∪31.␈↓ α␈εβ[␈ε	28␈↓ α;␈εβ]␈α⊗Assum␈α␈e␈αtha␈α␈t␈↓ ∧≤␈ε	b␈↓ ∧3␈εβ=␈α	3␈αa␈α␈nd␈α
that␈↓ ε↓␈ε	u␈↓ ε∨␈εβ=␈α	(␈↓ εT␈ε	u␈↓ εz␈εβ.␈α¬.␈αε.␈↓ π&␈ε	u␈↓ πz␈εβ)␈↓ λ∩␈εβ,␈↓ λ&␈ε	v␈↓ λA␈εβ=␈α	(␈↓ λv␈ε	v␈↓ 	↔␈εβ.␈αε.␈αε.␈↓ 	C␈ε	v␈↓ 	b␈εβ)␈↓ 
¬␈εβare␈αin␈α}teger␈α␈s
␈β⊂␈↓ εh␈εε1␈↓ π9␈εm␈↓ πP␈εε+␈↓ πj␈εn␈↓ λ¬␈εε3␈↓ 	¬␈εε1␈↓ 	R␈εn␈↓ 	n␈εε3
␈β⊂(␈↓ ↓H␈εβin␈ε⊂␈α	ba␈α␈l␈α↓a␈α␈nc␈α␈ed␈α	terna␈α␈ry␈εβ␈α	nota␈α␈tion␈α	(cf.␈α
Sec␈α␈ti␈α↓o␈α␈n␈α	4.1),␈↓ εc␈ε	v␈↓ πλ␈ε↔≤␈εβ␈α	0.␈αDesign␈α	a␈α	long␈α␈-division␈α	a␈α␈l␈α↓g␈α␈orithm
␈β⊂3␈↓ εr␈εε1
␈β⊂L␈↓ 
o␈εε1
␈β⊂P␈↓ ↓H␈εβth␈α␈at␈α
divid␈α␈es␈↓ β␈ε	u␈↓ β∨␈εβb␈α␈y␈↓ βN␈ε	v␈↓ β`␈εβ,␈αo␈α␈btain␈α␈i␈α↓n␈α␈g␈α
a␈αrem␈α␈aind␈α␈er␈αwh␈α␈ose␈α
abso␈α␈lute␈α
valu␈α␈e␈αd␈α␈oes␈α
not␈α
ex␈α␈c␈α␈eed␈↓ 
␈␈ε↔j␈↓ 	␈ε	v␈↓ ~␈ε↔j␈εβ.
␈β⊂↑␈↓ 
o␈∧⊂↑
oα
␈β⊂`␈↓ 
o␈εε2
␈β⊂w␈↓ ↓H␈εβTry␈α∞to␈α∞|␈α␈nd␈α∞a␈α␈n␈α∞algo␈α␈ri␈α↓th␈α␈m␈α∞tha␈α␈t␈α∂w␈α␈ou␈α␈ld␈α∞be␈α∞e}c␈α␈i␈α↓en␈α}t␈α∂if␈α∞i␈α↓n␈α␈corp␈α␈ora␈α␈ted␈α∞in␈α␈to␈α∞th␈α␈e␈α∂a␈α␈rithme␈α␈ti␈α↓c
␈β⊃∨␈↓ ↓H␈εβc␈α␈i␈α↓rc␈α␈uitry␈αo␈α␈f␈αa␈α
ba␈α␈l␈α↓a␈α␈nce␈α␈d␈αtern␈α␈ary␈α
comp␈α␈ute␈α␈r.
␈β∪(

␈β↓Y␈↓ ↓H␈εα4.3.2␈ε∞␈↓ πlMODU␈α␈LAR␈α	ARIT␈α␈HMET␈α␈IC␈↓ 
v␈εα265
␈βα*␈↓ ↓V␈ε∪32.␈↓ α␈εβ[␈ε	M40␈↓ αX␈εβ]␈α⊗Assu␈α␈me␈αtha␈α␈t␈↓ ∧<␈ε	b␈↓ ∧T␈εβ=␈α2␈↓ ¬⊃␈ε	i␈↓ ¬*␈εβand␈αthat␈↓ ε6␈ε	u␈↓ εV␈εβan␈α␈d␈↓ π_␈ε	v␈↓ π6␈εβar␈α␈e␈α
c␈α␈omp␈α␈l␈α↓e␈α␈x␈αn␈α␈u␈α␈m␈α␈be␈α␈rs␈α
e␈α␈xp␈α␈ressed␈αin
␈βαR␈↓ ↓H␈εβth␈α␈e␈αqua␈α␈ter-imag␈α␈i␈α↓n␈α␈ary␈αn␈α}um␈α␈b␈α␈er␈αsyste␈α␈m.␈α⊂De␈α␈si␈α↓g␈α␈n␈αalgo␈α␈ri␈α↓th␈α␈ms␈αtha␈α␈t␈α
d␈α␈i␈α↓v␈α␈ide␈↓ 	B␈ε	u␈↓ 	c␈εβb␈α␈y␈↓ 
∀␈ε	v␈↓ 
&␈εβ,␈α
p␈α␈erh␈α␈ap␈α␈s
␈βαy␈↓ ↓H␈εβo␈α␈bta␈α␈i␈α↓n␈α␈ing␈α	a␈α	suita␈α␈ble␈α	remain␈α␈der␈α	of␈α	some␈α	sor␈α␈t,␈α
and␈α	c␈α␈omp␈α␈are␈α	the␈α␈i␈α↓r␈α	e}c␈α␈i␈α↓e␈α␈ncy␈α␈.␈α∃[␈ε⊂␈α↓Re␈α␈f␈α↓e␈α␈renc␈α␈es:
␈ββ!␈↓ ↓H␈εβM␈α␈.␈α∂Na␈α␈dler,␈ε⊂␈α∂CAC␈α␈M␈ε∪␈α∞4␈εβ␈α∂(1␈α␈961␈α␈),␈α⊂19␈α␈2↑␈α␈193␈α␈;␈α⊃Z.␈α∂Pawlak␈α∞a␈α␈nd␈α∞A.␈α∂Wa␈α␈ku␈α␈l␈α↓icz,␈ε⊂␈α∂Bull.␈α∂d␈α␈e␈α∂l'Acad␈α␈.
␈ββI␈↓ ↓H␈ε⊂Polon␈α␈aise␈α	d␈α␈es␈α	S␈α␈cience␈α␈s␈εβ,␈α
Classe␈αλI␈α↓II,␈ε∪␈α	5␈εβ␈α	(1␈α␈957␈α␈),␈α
23␈α␈3↑2␈α␈36␈α	(se␈α␈e␈α	also␈α	p␈α␈p.␈α
803␈α␈↑80␈α␈4);␈α
an␈α␈d␈α	e␈α␈x␈α␈erc␈α␈i␈α↓se
␈ββp␈↓ ↓H␈εβ4␈α␈.␈α↓1␈α␈↑1␈α␈5.]
␈β∧"␈↓ ↓V␈ε∪33.␈↓ α␈εβ[␈ε	M40␈↓ αX␈εβ]␈α⊗Des␈α␈i␈α↓g␈α␈n␈α	a␈α␈n␈α	a␈α␈lgorith␈α␈m␈α	for␈αλtakin␈α␈g␈α	sq␈α␈uar␈α␈e␈α	roo␈α␈ts,␈α
a␈α␈na␈α␈l␈α↓o␈α␈gou␈α␈s␈α	to␈αλAl␈α↓g␈α␈orithm␈αλD␈α	a␈α␈nd
␈β∧J␈↓ ↓H␈εβto␈α
the␈αtra␈α␈dition␈α␈al␈αpen␈α␈cil-␈α↓a␈α␈nd␈α␈-pa␈α␈per␈αme␈α␈tho␈α␈d␈αfor␈αex␈α␈trac␈α␈ti␈α↓n␈α␈g␈αsqu␈α␈are␈αr␈α␈oots.
␈β∧{␈↓ ↓V␈ε∪34.␈↓ α␈εβ[␈ε	40␈↓ α;␈εβ]␈α⊗Dev␈α}elop␈αa␈αse␈α␈t␈α
o␈α␈f␈αcomp␈α␈ute␈α␈r␈α
su␈α␈br␈α␈outin␈α␈es␈αfor␈αdo␈α␈i␈α↓n␈α␈g␈αth␈α␈e␈αfour␈αa␈α␈ri␈α↓th␈α␈metic␈αo␈α␈pera␈α␈-
␈β¬#␈↓ ↓H␈εβtio␈α␈ns␈αon␈α
arb␈α␈itrary␈α
i␈α↓n␈α}tege␈α␈rs,␈αp␈α␈uttin␈α␈g␈αn␈α␈o␈αco␈α␈nstra␈α␈i␈α↓n␈α}t␈αon␈α
the␈αsize␈α
of␈αthe␈α
i␈α↓n␈α}tege␈α␈rs␈αex␈α␈ce␈α␈pt␈αfo␈α␈r
␈β¬K␈↓ ↓H␈εβth␈α␈e␈α
imp␈α␈li␈α↓cit␈α
a␈α␈ssum␈α␈ption␈α	tha␈α␈t␈α
th␈α␈e␈α
tota␈α␈l␈α
memo␈α␈ry␈α
c␈α␈apa␈α␈city␈α
o␈α␈f␈α
the␈α	com␈α␈pu␈α␈ter␈α
sh␈α␈ould␈α	no␈α␈t␈α
be
␈β¬r␈↓ ↓H␈εβe␈α␈x␈α␈cee␈α␈ded␈α␈.␈α(␈α↓Use␈α
li␈α↓n␈α␈k␈α␈ed␈α
me␈α␈mory␈α
alloca␈α␈ti␈α↓o␈α␈n,␈αso␈α
tha␈α␈t␈αno␈α
time␈αis␈αwaste␈α␈d␈αin␈α
|n␈α␈ding␈α
roo␈α␈m␈αto
␈βε~␈↓ ↓H␈εβp␈α␈ut␈αth␈α␈e␈αresu␈α␈lts.␈α↓)
␈βεL␈↓ ↓V␈ε∪35.␈↓ α␈εβ[␈ε	40␈↓ α;␈εβ]␈α⊗Dev␈α}elop␈α
a␈α
set␈α
of␈α
comp␈α␈ut␈α␈er␈αsu␈α␈bro␈α␈utin␈α␈es␈αfo␈α␈r␈α\␈α␈dec␈α␈up␈α␈l␈α↓e␈α␈-␈α↓p␈α␈recision␈α
⎇␈α␈oa␈α␈ti␈α↓n␈α␈g-p␈α␈oin␈α␈t"
␈βεs␈↓ ↓H␈εβa␈α␈rithme␈α␈ti␈α↓c␈α␈,␈αλusin␈α␈g␈αεex␈α␈c␈α␈ess␈απ0␈α␈,␈αλb␈α␈ase␈↓ ¬¬␈ε	b␈↓ ¬∩␈εβ,␈αλn␈α␈i␈α↓n␈α␈e-pla␈α␈ce␈αε⎇oa␈α␈ting-p␈α␈oin␈α␈t␈αεn␈α␈u␈α␈m␈α␈b␈α␈er␈αεrepre␈α␈sen␈α␈ta␈α␈ti␈α↓o␈α␈n,␈απwhere
␈βπ≠␈↓ ↓H␈ε	b␈↓ ↓c␈εβis␈α∞th␈α␈e␈α∞com␈α␈pu␈α␈ter␈α∞w␈α␈ord␈α
size,␈α∂an␈α␈d␈α
all␈α↓o␈α}wi␈α↓n␈α␈g␈α∞a␈α
full␈α∞wo␈α␈rd␈α∞fo␈α␈r␈α∞the␈α
exp␈α␈on␈α␈en␈α␈t.␈α∀(Th␈α}us␈α∞e␈α␈ach
␈βπB␈↓ ↓H␈εβ⎇␈α␈oa␈α␈ti␈α↓n␈α␈g-p␈α␈oin␈α␈t␈α
n␈α␈u␈α␈m␈α␈be␈α␈r␈αis␈α
repre␈α␈sen␈α␈te␈α␈d␈α
i␈α↓n␈α	10␈α
w␈α␈ord␈α␈s␈αo␈α␈f␈αme␈α␈mory␈α␈,␈αan␈α␈d␈α
all␈αsc␈α␈aling␈α
is␈αd␈α␈on␈α␈e␈α
by
␈βπj␈↓ ↓H␈εβm␈α␈o␈α␈vin␈α␈g␈αfull␈αw␈α␈ords␈αin␈α␈stead␈α
of␈αby␈α
shifting␈α
w␈α↓ith␈α␈in␈αthe␈α
wo␈α␈rds.)
␈βλ≤␈↓ ↓V␈ε∪36.␈↓ α␈εβ[␈ε	M42␈↓ αX␈εβ]␈α⊗Co␈α␈mpu␈α␈te␈α
the␈α
va␈α␈l␈α↓u␈α␈es␈α
of␈αth␈α␈e␈α
fun␈α␈dam␈α␈en␈α␈ta␈α␈l␈αcon␈α␈stan␈α}ts␈αlisted␈α
in␈α
App␈α␈en␈α␈dix␈α
B␈αto
␈βλC␈↓ ↓H␈εβm␈α}uch␈αhigh␈α␈er␈αp␈α␈recision␈αth␈α␈an␈αthe␈α4␈α␈0-pla␈α␈ce␈αva␈α␈lues␈αlisted␈αthere␈α␈.␈α≤[␈ε⊂Not␈α␈e:␈εβ␈α∞Th␈α␈e␈α|␈α␈rst␈α100␈α␈,000
␈βλk␈↓ ↓H␈εβd␈α␈igits␈αo␈α␈f␈αthe␈αd␈α␈ecimal␈αexp␈α␈an␈α␈si␈α↓o␈α␈n␈αof␈↓ ¬B␈ε	→␈↓ ¬`␈εβw␈α␈er␈α␈e␈αp␈α␈ub␈α␈l␈α↓ish␈α␈ed␈αby␈αD.␈αSh␈α␈ank␈α␈s␈αa␈α␈nd␈αJ␈α␈.␈αW␈α↓.␈αW␈α↓re␈α␈nch␈α␈,
␈β	∪␈↓ ↓H␈εβJ␈α␈r.,␈αin␈ε⊂␈αM␈α␈ath␈α␈.␈αCo␈α␈mp.␈ε∪␈α16␈εβ␈α
(196␈α␈2),␈α76↑␈α␈99.]
␈β	@␈↓ ↓;␈ε↓x
␈β	D␈↓ ↓V␈ε∪37.␈↓ α␈εβ[␈ε	20␈↓ α;␈εβ]␈α⊗(E.␈αS␈α␈alam␈α␈i␈α↓n␈α␈.)␈α→Exp␈α␈lain␈αh␈α␈o␈α␈w␈αto␈α
av␈α}oid␈α
the␈αn␈α␈orm␈α␈ali␈α↓z␈α␈ation␈α
an␈α␈d␈αu␈α␈nn␈α␈orm␈α␈ali␈α↓z␈α␈ation
␈β	l␈↓ ↓H␈εβste␈α␈ps␈απof␈απAl␈α↓g␈α␈orith␈α␈m␈αλD␈↓ βo␈εβ,␈α	wh␈α␈en␈↓ ∧T␈ε	d␈↓ ∧n␈εβis␈απa␈απpo␈α}we␈α␈r␈αλo␈α␈f␈αλ2␈απo␈α␈n␈απa␈απbin␈α␈ary␈απco␈α␈mpu␈α␈ter,␈αλwithou␈α␈t␈απcha␈α␈ng␈α␈i␈α↓n␈α␈g␈απthe
␈β
∀␈↓ ↓H␈εβse␈α␈que␈α␈nce␈α
o␈α␈f␈αtria␈α␈l␈αqu␈α␈otien␈α}t␈α
digits␈α
com␈α␈pu␈α␈ted␈α
b␈α␈y␈α
tha␈α␈t␈α
algorith␈α␈m.␈α(Ho␈α␈w␈α
can␈↓ 	Y␈εβ∂␈↓ 	Y␈ε	q␈↓ 	r␈εβbe␈α
co␈α␈mpu␈α␈ted
␈β
;␈↓ ↓H␈εβin␈α
step␈αD3␈α
i␈α↓f␈αth␈α␈e␈αno␈α␈rmalization␈α
of␈αstep␈α
D1␈αh␈α␈asn't␈αb␈α␈een␈αd␈α␈on␈α␈e?)
␈β3␈↓ ↓4␈ε≥*␈↓ ↓H␈ε≥4␈α␈.2.2.␈α
Modular␈α
Ar␈α␈it␈α↓hmetic
␈βs␈↓ ↓H␈εαAnother␈αin␈α␈teresting␈αalternativ␈α␈e␈αis␈αavailable␈αfor␈αdoing␈αarithmetic␈αon␈αlarge␈αin␈α␈teger
␈β∨␈↓ ↓H␈εαn␈α␈um␈α␈bers,␈αbased␈αon␈α
some␈αsimple␈αprinciples␈αof␈αn␈α␈um␈α␈ber␈αtheory.␈αThe␈αidea␈αis␈αto␈α
hav␈α␈e
␈βJ␈↓ ↓H␈εαsev␈α␈eral␈α\moduli"␈↓ β[␈ελm␈↓ ∧λ␈εα,␈↓ ∧≡␈ελm␈↓ ∧K␈εα,␈↓ ∧a␈εα.␈αε.␈αε.␈↓ ¬⊃␈εα,␈↓ ¬'␈ελm␈↓ ¬↑␈εαthat␈αcon␈α␈tain␈αno␈αcommon␈αfactors,␈αand␈αto␈αw␈α␈ork
␈βW␈↓ βy␈ε¬1␈↓ ∧<␈ε¬2␈↓ ¬E␈εr
␈βu␈↓ ↓H␈εαindirectly␈α
with␈α
\residues"␈↓ ∧c␈ελu␈↓ ∧}␈εαmod␈↓ ¬H␈ελm␈↓ ¬u␈εα,␈↓ ε
␈ελu␈↓ ε&␈εαmod␈↓ εp␈ελm␈↓ π≥␈εα,␈↓ π1␈εα.␈αε.␈αε.␈↓ πa␈εα,␈↓ πv␈ελu␈↓ λ∩␈εαmod␈↓ λ\␈ελm␈↓ 	∩␈εαinstead␈α
of␈α
directly
␈β
α␈↓ ¬g␈ε¬1␈↓ π∞␈ε¬2␈↓ λz␈εr
␈β
 ␈↓ ↓H␈εαwith␈αthe␈αn␈α␈um␈α␈ber␈↓ βZ␈ελu␈↓ βo␈εα.
␈β
K␈↓ α␈εαFor␈αcon␈α␈v␈α␈enience␈αin␈αnotation␈αthroughout␈αthis␈αsection,␈αlet
␈β∞≥␈↓ α6␈ελu␈↓ αc␈εα=␈↓ β⊃␈ελu␈↓ β,␈εαmod␈↓ βv␈ελm␈↓ ∧#␈εα,␈↓ ∧{␈ελu␈↓ ¬(␈εα=␈↓ ¬V␈ελu␈↓ ¬r␈εαmod␈↓ ε<␈ελm␈↓ εi␈εα,␈↓ πA␈εα.␈αε.␈αε.␈↓ πq␈εα,␈↓ λI␈ελu␈↓ λu␈εα=␈↓ 	#␈ελu␈↓ 	>␈εαmod␈↓ 
λ␈ελm␈↓ 
4␈εα.␈↓ α␈εα(1)
␈β∞*␈↓ αJ␈ε¬1␈↓ ∧∃␈ε¬1␈↓ ¬⊂␈ε¬2␈↓ ε[␈ε¬2␈↓ λ]␈εr␈↓ 
'␈εr
␈β∞n␈↓ ↓H␈εαIt␈α
is␈αeasy␈α
to␈α
compute␈α(␈↓ ∧$␈ελu␈↓ ∧G␈εα,␈↓ ∧W␈ελu␈↓ ∧z␈εα,␈↓ ¬
␈εα.␈αε.␈αε.␈↓ ¬:␈εα,␈↓ ¬J␈ελu␈↓ ¬l␈εα)␈α
from␈αan␈α
in␈α␈teger␈αn␈α␈um␈α␈ber␈↓ λ⎇␈ελu␈↓ 	≥␈εαby␈αmeans␈α
of␈α
divi-
␈β∞{␈↓ ∧8␈ε¬1␈↓ ∧k␈ε¬2␈↓ ¬↑␈εr
␈β∂→␈↓ ↓H␈εαsion;␈αand←more␈αimportan␈α␈t←no␈αinformation␈αis␈αlost␈αin␈αthis␈αprocess,␈αsince␈αw␈α␈e␈αcan
␈β∂D␈↓ ↓H␈εαrecompute␈↓ αw␈ελu␈↓ β_␈εαfrom␈α(␈↓ βy␈ελu␈↓ ∧≤␈εα,␈↓ ∧,␈ελu␈↓ ∧O␈εα,␈↓ ∧←␈εα.␈αε.␈αε.␈↓ ¬∂␈εα,␈↓ ¬∨␈ελu␈↓ ¬A␈εα)␈αpro␈α␈vided␈αthat␈↓ π:␈ελu␈↓ π[␈εαis␈αnot␈αtoo␈αlarge.␈αFor␈αexample,
␈β∂Q␈↓ ∧∞␈ε¬1␈↓ ∧A␈ε¬2␈↓ ¬4␈εr
␈β∂o␈↓ ↓H␈εαif␈α	0␈ε⊗␈α
∀␈↓ α1␈ελu␈↓ αQ␈εα<␈↓ α␈␈ελv␈↓ β≠␈ε⊗∀␈εα␈α
1000,␈α
it␈α	is␈α
impossible␈α	to␈α	hav␈α␈e␈α	(␈↓ π~␈ελu␈↓ π6␈εαmod␈↓ λ␈εα7,␈↓ λ"␈ελu␈↓ λ>␈εαmod␈↓ 	λ␈εα11,␈↓ 	<␈ελu␈↓ 	W␈εαmod␈↓ 
!␈εα13)␈α	equal
␈β⊂~␈↓ ↓H␈εαto␈απ(␈↓ ↓{␈ελv␈↓ α∀␈εαmod␈↓ α↑␈εα7,␈↓ β␈ελv␈↓ β→␈εαmod␈↓ βc␈εα11,␈↓ ∧↔␈ελv␈↓ ∧0␈εαmod␈↓ ∧z␈εα13).␈α
This␈αλis␈αλa␈αλconsequence␈αλof␈αλthe␈αλ\Chinese␈απRemainder
␈β⊂F␈↓ ↓H␈εαTheorem"␈αstated␈αbelo␈α␈w.
␈β⊂q␈↓ α␈εαWe␈αmay␈αtherefore␈αregard␈α(␈↓ ¬,␈ελu␈↓ ¬N␈εα,␈↓ ¬↑␈ελu␈↓ ε↓␈εα,␈↓ ε⊃␈εα.␈αε.␈αε.␈↓ εA␈εα,␈↓ εQ␈ελu␈↓ εs␈εα)␈αas␈αa␈αnew␈αtype␈αof␈αin␈α␈ternal␈α
computer
␈β⊂}␈↓ ¬@␈ε¬1␈↓ ¬s␈ε¬2␈↓ εf␈εr
␈β⊃≤␈↓ ↓H␈εαrepresen␈α␈tation,␈αa␈α\modular␈αrepresen␈α␈tation,"␈αof␈αthe␈αin␈α␈teger␈↓ λa␈ελu␈↓ λv␈εα.
␈β∪(

␈β↓Y␈↓ ↓H␈εα266␈↓ α=␈ε∞A␈α␈RITH␈α␈METIC␈εα␈↓ 
b4.3.2
␈βα(␈↓ α␈εαThe␈αadvan␈α␈tages␈αof␈αa␈αmodular␈αrepresen␈α␈tation␈αare␈αthat␈αaddition,␈αsubtraction,
␈βαS␈↓ ↓H␈εαand␈αm␈α␈ultiplication␈αare␈αv␈α␈ery␈αsimple:
␈ββ∧␈↓ ¬@␈ε↓␈␈↓ 
/␈ε↓↓
␈ββ$␈↓ αβ␈εα(␈↓ α∂␈ελu␈↓ α2␈εα,␈↓ αB␈εα.␈αε.␈αε.␈↓ αr␈εα,␈↓ βα␈ελu␈↓ β$␈εα)␈αλ+␈αλ(␈↓ βp␈ελv␈↓ ∧∞␈εα,␈↓ ∧≡␈εα.␈αε.␈αε.␈↓ ∧N␈εα,␈↓ ∧↑␈ελv␈↓ ∧|␈εα)␈↓ ¬∩␈εα=␈↓ ¬N␈εα(␈↓ ¬Z␈ελu␈↓ ε¬␈εα+␈↓ ε1␈ελv␈↓ εO␈εα)␈↓ εa␈εαmod␈↓ π+␈ελm␈↓ πX␈εα,␈↓ πh␈εα.␈αε.␈αε.␈↓ λ_␈εα,␈αε(␈↓ λ4␈ελu␈↓ λ↑␈εα+␈↓ 	
␈ελv␈↓ 	'␈εα)␈↓ 	9␈εαmod␈↓ 
β␈ελm␈↓ 
=␈εα,␈↓ α␈εα(2)
␈ββ1␈↓ α$␈ε¬1␈↓ β↔␈εr␈↓ ∧␈ε¬1␈↓ ∧n␈εr␈↓ ¬n␈ε¬1␈↓ ε@␈ε¬1␈↓ πI␈ε¬1␈↓ λH␈εr␈↓ 	→␈εr␈↓ 
!␈εr
␈ββ:␈↓ ¬@␈ε↓␈␈↓ 
/␈ε↓↓
␈ββZ␈↓ αβ␈εα(␈↓ α∂␈ελu␈↓ α2␈εα,␈↓ αB␈εα.␈αε.␈αε.␈↓ αr␈εα,␈↓ βα␈ελu␈↓ β$␈εα)␈ε⊗␈αλ␈␈εα␈αλ(␈↓ βp␈ελv␈↓ ∧∞␈εα,␈↓ ∧≡␈εα.␈αε.␈αε.␈↓ ∧N␈εα,␈↓ ∧↑␈ελv␈↓ ∧|␈εα)␈↓ ¬∩␈εα=␈↓ ¬N␈εα(␈↓ ¬Z␈ελu␈↓ ε¬␈ε⊗␈␈↓ ε1␈ελv␈↓ εO␈εα)␈↓ εa␈εαmod␈↓ π+␈ελm␈↓ πX␈εα,␈↓ πh␈εα.␈αε.␈αε.␈↓ λ_␈εα,␈αε(␈↓ λ4␈ελu␈↓ λ↑␈ε⊗␈␈↓ 	
␈ελv␈↓ 	'␈εα)␈↓ 	9␈εαmod␈↓ 
β␈ελm␈↓ 
=␈εα,␈↓ α␈εα(3)
␈ββg␈↓ α$␈ε¬1␈↓ β↔␈εr␈↓ ∧␈ε¬1␈↓ ∧n␈εr␈↓ ¬n␈ε¬1␈↓ ε@␈ε¬1␈↓ πI␈ε¬1␈↓ λH␈εr␈↓ 	→␈εr␈↓ 
!␈εr
␈ββp␈↓ ¬@␈ε↓␈␈↓ 
/␈ε↓↓
␈β∧⊂␈↓ αβ␈εα(␈↓ α∂␈ελu␈↓ α2␈εα,␈↓ αB␈εα.␈αε.␈αε.␈↓ αr␈εα,␈↓ βα␈ελu␈↓ β$␈εα)␈ε⊗␈αλα␈εα␈αλ(␈↓ βp␈ελv␈↓ ∧∞␈εα,␈↓ ∧≡␈εα.␈αε.␈αε.␈↓ ∧N␈εα,␈↓ ∧↑␈ελv␈↓ ∧|␈εα)␈↓ ¬∩␈εα=␈↓ ¬N␈εα(␈↓ ¬Z␈ελu␈↓ ε¬␈ε⊗α␈↓ ε1␈ελv␈↓ εO␈εα)␈↓ εa␈εαmod␈↓ π+␈ελm␈↓ πX␈εα,␈↓ πh␈εα.␈αε.␈αε.␈↓ λ_␈εα,␈αε(␈↓ λ4␈ελu␈↓ λ↑␈ε⊗α␈↓ 	
␈ελv␈↓ 	'␈εα)␈↓ 	9␈εαmod␈↓ 
β␈ελm␈↓ 
=␈εα.␈↓ α␈εα(4)
␈β∧≥␈↓ α$␈ε¬1␈↓ β↔␈εr␈↓ ∧␈ε¬1␈↓ ∧n␈εr␈↓ ¬n␈ε¬1␈↓ ε@␈ε¬1␈↓ πI␈ε¬1␈↓ λH␈εr␈↓ 	→␈εr␈↓ 
!␈εr
␈β∧c␈↓ ↓H␈εαTo␈αderiv␈α␈e␈α(4),␈αfor␈αexample,␈αw␈α␈e␈αneed␈αto␈αsho␈α␈w␈αthat
␈β¬6␈↓ βf␈ελu␈↓ β|␈ελv␈↓ ∧∀␈εαmod␈↓ ∧↑␈ελm␈↓ ¬∀␈εα=␈α
(␈↓ ¬N␈ελu␈↓ ¬j␈εαmod␈↓ ε4␈ελm␈↓ ε`␈εα)(␈↓ εx␈ελv␈↓ π⊂␈εαmod␈↓ πZ␈ελm␈↓ λε␈εα)␈↓ λ_␈εαmod␈↓ λb␈ελm
␈β¬C␈↓ ∧⎇␈εj␈↓ εR␈εj␈↓ πy␈εj␈↓ 	↓␈εj
␈βε	␈↓ ↓H␈εαfor␈α⊂each␈α⊃modulus␈↓ βo␈ελm␈↓ ∧≠␈εα.␈α~But␈α⊂this␈α⊃is␈α⊂a␈α⊃basic␈α⊂fact␈α⊃of␈α⊂elemen␈α␈tary␈α⊃n␈α␈um␈α␈ber␈α⊂theory:
␈βε⊗␈↓ ∧∞␈εj
␈βε/␈↓ %␈ε→0
␈βε4␈↓ ↓H␈ελx␈↓ ↓`␈εαmod␈↓ α*␈ελm␈↓ αb␈εα=␈↓ β∩␈ελy␈↓ β,␈εαmod␈↓ βv␈ελm␈↓ ∧/␈εαif␈α
and␈α
only␈α
if␈↓ ε∞␈ελx␈↓ ε,␈ε⊗⊃␈↓ ε\␈ελy␈↓ ε|␈εα(modulo␈↓ λλ␈ελm␈↓ λ4␈εα);␈α∞furthermore␈α
if␈↓ 
D␈ελx␈↓ 
c␈ε⊗⊃␈↓ ∩␈ελx
␈βεA␈↓ αI␈εj␈↓ ∧∃␈εj␈↓ λ'␈εj
␈βεZ␈↓ α␈␈ε→0␈↓ ∧u␈ε→0␈↓ ¬⊂␈ε→0
␈βε←␈↓ ↓H␈εαand␈↓ α⊃␈ελy␈↓ α6␈ε⊗⊃␈↓ αj␈ελy␈↓ βε␈εα,␈α⊃then␈↓ βv␈ελx␈↓ ∧	␈ελy␈↓ ∧.␈ε⊗⊃␈↓ ∧b␈ελx␈↓ ∧|␈ελy␈↓ ¬(␈εα(modulo␈↓ ε4␈ελm␈↓ ε`␈εα);␈α⊃hence␈α⊂(␈↓ π{␈ελu␈↓ λ↔␈εαmod␈↓ λa␈ελm␈↓ 	
␈εα)(␈↓ 	%␈ελv␈↓ 	=␈εαmod␈↓ 
π␈ελm␈↓ 
3␈εα)␈ε⊗␈α⊃⊃␈↓ ∧␈ελu␈↓ ~␈ελv
␈βεl␈↓ εR␈εj␈↓ λ␈␈εj␈↓ 
&␈εj
␈βπ
␈↓ ↓H␈εα(modulo␈↓ αT␈ελm␈↓ α␈␈εα).
␈βπ_␈↓ αr␈εj
␈βπ5␈↓ α␈εαThe␈αdisadvan␈α␈tages␈αof␈αa␈αmodular␈αrepresen␈α␈tation␈αare␈αthat␈αit␈αis␈αcomparativ␈α␈ely
␈βπa␈↓ ↓H␈εαdi}cult␈α	to␈α	test␈α
whether␈α	a␈α
n␈α␈um␈α␈ber␈α	is␈α	positiv␈α␈e␈α
or␈α	negativ␈α␈e␈α
or␈α	to␈α	test␈α
whether␈α	or␈α	not
␈βλ␈↓ ↓H␈εα(␈↓ ↓T␈ελu␈↓ ↓w␈εα,␈↓ απ␈εα.␈αε.␈αε.␈↓ α7␈εα,␈↓ αG␈ελu␈↓ αi␈εα)␈αis␈α
greater␈α
than␈α
(␈↓ ¬α␈ελv␈↓ ¬!␈εα,␈↓ ¬1␈εα.␈αε.␈αε.␈↓ ¬a␈εα,␈↓ ¬q␈ελv␈↓ ε∞␈εα).␈α∂It␈α
is␈α
also␈α
di}cult␈α
to␈α
test␈αwhether␈α
or␈α
not
␈βλ→␈↓ ↓h␈ε¬1␈↓ α[␈εr␈↓ ¬∩␈ε¬1␈↓ ε␈εr
␈βλ7␈↓ ↓H␈εαo␈α␈v␈α␈er⎇o␈α␈w␈α
has␈α
occurred␈α
as␈α
the␈α
result␈α
of␈α
an␈α
addition,␈α
subtraction,␈α
or␈α
m␈α␈ultiplication,
␈βλb␈↓ ↓H␈εαand␈αit␈α
is␈α
ev␈α␈en␈αmore␈α
di}cult␈α
to␈αperform␈α
division.␈α∞When␈αthese␈α
operations␈α
are␈αre-
␈β	
␈↓ ↓H␈εαquired␈αfrequen␈α␈tly␈αin␈αconjunction␈αwith␈αaddition,␈αsubtraction,␈αand␈αm␈α␈ultiplication,
␈β	9␈↓ ↓H␈εαthe␈α
use␈α∞of␈α
modular␈α
arithmetic␈α∞can␈α
be␈α∞justi|ed␈α
only␈α∞if␈α
fast␈α∞means␈α
of␈α
con␈α␈v␈α␈ersion
␈β	d␈↓ ↓H␈εαin␈α␈to␈α
and␈α
out␈α
of␈α∞the␈α
modular␈α
represen␈α␈tation␈α
are␈α∞available.␈α∂Therefore␈α
con␈α␈v␈α␈ersion
␈β
∂␈↓ ↓H␈εαbet␈α␈w␈α␈een␈α
modular␈α
and␈α
positional␈α
notation␈α
is␈α
one␈α
of␈α
the␈α	principal␈α
topics␈α
of␈α
in␈α␈terest
␈β
:␈↓ ↓H␈εαto␈αus␈αin␈αthis␈αsection.
␈β
e␈↓ α␈εαThe␈α
processes␈α
of␈α
addition,␈α
subtraction,␈αand␈α
m␈α␈ultiplication␈α
using␈α
(2),␈α
(3),␈α
and
␈β⊃␈↓ ↓H␈εα(4)␈α∞are␈α
called␈α∞residue␈α∞arithmetic␈α∞or␈ε∂␈α∞modular␈α∞arithmetic.␈εα␈α∩The␈α∞range␈α∞of␈α
n␈α␈um␈α␈bers
␈β<␈↓ ↓H␈εαthat␈α∞can␈α∞be␈α∂handled␈α∞by␈α∂modular␈α∞arithmetic␈α∂is␈α∞equal␈α∞to␈↓ λF␈ελm␈↓ λt␈εα=␈↓ 	&␈ελm␈↓ 	S␈ελm␈↓ 
ε␈εα.␈αε.␈αε.␈↓ 
6␈ελm␈↓ 
a␈εα,␈α∂the
␈βI␈↓ 	D␈ε¬1␈↓ 	q␈ε¬2␈↓ 
T␈εr
␈βg␈↓ ↓H␈εαproduct␈α∞of␈α∂the␈α∂moduli.␈α∃Therefore␈α∂w␈α␈e␈α∞see␈α∂that␈α∂the␈α∂amoun␈α␈t␈α∂of␈α∂time␈α∂required␈α∞to
␈β∩␈↓ ↓H␈εαadd,␈α∂subtract,␈α⊂or␈α∂m␈α␈ultiply␈↓ ∧z␈ελn␈↓ ¬⊂␈εα-digit␈α∂n␈α␈um␈α␈bers␈α∂using␈α∂modular␈α∂arithmetic␈α∂is␈α∂essen-
␈β=␈↓ ↓H␈εαtially␈αproportional␈αto␈↓ ∧≥␈ελn␈↓ ∧>␈εα(not␈αcoun␈α␈ting␈αthe␈αtime␈αto␈αcon␈α␈v␈α␈ert␈αin␈αand␈αout␈αof␈αmodular
␈βi␈↓ ↓H␈εαrepresen␈α␈tation).␈α⊂This␈α
is␈α
no␈α
advan␈α␈tage␈α∞at␈α
all␈α
when␈α∞addition␈α
and␈α
subtraction␈α
are
␈β
∀␈↓ ↓H␈εαconsidered,␈α
but␈α
it␈α
can␈α	be␈α
a␈α
considerable␈α
advan␈α␈tage␈α
with␈α
respect␈α
to␈α	m␈α␈ultiplication
␈β
?␈↓ ↓H␈εαsince␈αλthe␈α	con␈α␈v␈α␈en␈α␈tional␈αλmethod␈α	of␈α	the␈αλpreceding␈α	section␈α	requires␈αλan␈α	ex␈α␈ecution␈αλtime
␈β
e␈↓ βW␈ε¬2
␈β
j␈↓ ↓H␈εαproportional␈αto␈↓ βB␈ελn␈↓ βf␈εα.
␈β∞∃␈↓ α␈εαMoreo␈α␈v␈α␈er,␈α
on␈α
a␈αcomputer␈α
that␈α
allo␈α␈ws␈α
man␈α␈y␈αoperations␈α
to␈α
tak␈α␈e␈α
place␈αsim␈α␈ul-
␈β∞A␈↓ ↓H␈εαtaneously,␈α
modular␈αarithmetic␈α
can␈α
be␈α
a␈αsigni|can␈α␈t␈α
advan␈α␈tage␈α
ev␈α␈en␈α
for␈αaddition
␈β∞l␈↓ ↓H␈εαand␈αsubtraction;␈αthe␈αoperations␈αwith␈αrespect␈αto␈αdi{eren␈α␈t␈αmoduli␈αcan␈αall␈αbe␈αdone
␈β∂↔␈↓ ↓H␈εαat␈α
the␈αsame␈αtime,␈α
so␈αw␈α␈e␈αobtain␈α
a␈αsubstan␈α␈tial␈αincrease␈α
in␈αspeed.␈αThe␈α
same␈αkind␈α
of
␈β∂B␈↓ ↓H␈εαdecrease␈α
in␈αex␈α␈ecution␈α
time␈αcould␈α
not␈αbe␈α
achiev␈α␈ed␈αby␈α
the␈αcon␈α␈v␈α␈en␈α␈tional␈α
techniques
␈β∂m␈↓ ↓H␈εαdiscussed␈α∞in␈α∂the␈α∞previous␈α∂section,␈α∂since␈α∞carry␈α∂propagation␈α∞m␈α␈ust␈α∂be␈α∞considered.
␈β⊂→␈↓ ↓H␈εαPerhaps␈αsome␈α
day␈αhighly␈α
parallel␈αcomputers␈α
will␈αmak␈α␈e␈α
sim␈α␈ultaneous␈αoperations
␈β⊂D␈↓ ↓H␈εαcommonplace,␈α⊂so␈α∂that␈α∂modular␈α⊂arithmetic␈α∂will␈α∂be␈α⊂of␈α∂signi|can␈α␈t␈α∂importance␈α∂in
␈β⊂o␈↓ ↓H␈εα\real-time"␈αcalculations␈αwhen␈αa␈αquick␈αansw␈α␈er␈αto␈αa␈αsingle␈αproblem␈αrequiring␈αhigh
␈β⊃~␈↓ ↓H␈εαprecision␈α
is␈α
needed.␈α(With␈α
highly␈α
parallel␈α
computers,␈αit␈α
is␈αoften␈α
preferable␈α
to␈α
run
␈β∪(

␈β↓Y␈↓ ↓H␈εα4.3.2␈ε∞␈↓ πlMODU␈α␈LAR␈α	ARIT␈α␈HMET␈α␈IC␈↓ 
v␈εα267
␈βα(␈↓ ↓H␈ελk␈↓ ↓d␈ε∂separate␈εα␈α
programs␈α
sim␈α␈ultaneously,␈α
instead␈αof␈α
running␈α
a␈ε∂␈α
single␈εα␈α
program␈↓ 
<␈ελk␈↓ 
X␈εαtimes
␈βαS␈↓ ↓H␈εαas␈αfast,␈α
since␈αthe␈α
latter␈αalternativ␈α␈e␈αis␈α
more␈αcomplicated␈α
but␈αdoes␈α
not␈αutilize␈αthe
␈βα}␈↓ ↓H␈εαmachine␈αan␈α␈y␈αmore␈αe}cien␈α␈tly;␈α\real-time"␈αcalculations␈αare␈αex␈α␈ceptions␈αthat␈αmak␈α␈e
␈ββ*␈↓ ↓H␈εαthe␈αinheren␈α␈t␈αparallelism␈αof␈αmodular␈αarithmetic␈αmore␈αsigni|can␈α␈t.)
␈ββW␈↓ α␈εαNo␈α␈w␈α
let␈α
us␈αexamine␈α
the␈α
basic␈α
fact␈αthat␈α
underlies␈α
the␈α
modular␈α
represen␈α␈tation
␈β∧β␈↓ ↓H␈εαof␈αn␈α␈um␈α␈bers:
␈β∧U␈↓ ↓H␈ε∩Theorem␈α∂C␈εα␈α⊂(␈ε∂Chinese␈α⊂Remainder␈α⊂Theorem␈εα)␈ε∩.␈ε∂␈α Let␈↓ πj␈ελm␈↓ λ↔␈ε∂,␈↓ λ1␈ελm␈↓ λ↑␈ε∂,␈↓ λy␈εα.␈αε.␈αε.␈↓ 	)␈ε∂,␈↓ 	D␈ελm␈↓ 
␈ε∂be␈α∂positiv␈α␈e
␈β∧b␈↓ λλ␈ε¬1␈↓ λP␈ε¬2␈↓ 	b␈εr
␈β¬␈↓ ↓H␈ε∂in␈α␈tegers␈αthat␈αare␈αrelativ␈α␈ely␈αprime␈αin␈αpairs,␈αi.e.,
␈β¬↑␈↓ ∧5␈εαgcd␈↓ ∧k␈εα(␈↓ ∧w␈ελm␈↓ ¬"␈εα,␈↓ ¬2␈ελm␈↓ ¬←␈εα)␈α
=␈α
1␈↓ ε⎇␈εαwhen␈↓ π[␈ελj␈↓ πv␈ε⊗≤␈↓ λ$␈ελk␈↓ λ6␈εα.␈↓ α␈εα(5)
␈β¬k␈↓ ¬∃␈εj␈↓ ¬Q␈εk
␈βε<␈↓ ↓H␈ε∂Let␈↓ απ␈ελm␈↓ α1␈εα=␈↓ α←␈ελm␈↓ β␈ελm␈↓ β?␈εα.␈αε.␈αε.␈↓ βo␈ελm␈↓ ∧≠␈ε∂,␈α
and␈α	let␈↓ ¬$␈ελa␈↓ ¬6␈ε∂,␈↓ ¬J␈ελu␈↓ ¬m␈ε∂,␈↓ ε↓␈ελu␈↓ ε$␈ε∂,␈↓ ε8␈εα.␈αε.␈αε.␈↓ εh␈ε∂,␈↓ ε|␈ελu␈↓ π(␈ε∂be␈α	in␈α␈tegers.␈αThen␈α	there␈α
is␈α	exactly
␈βεI␈↓ α⎇␈ε¬1␈↓ β*␈ε¬2␈↓ ∧
␈εr␈↓ ¬←␈ε¬1␈↓ ε⊗␈ε¬2␈↓ π⊃␈εr
␈βεg␈↓ ↓H␈ε∂one␈αin␈α␈teger␈↓ β↓␈ελu␈↓ β"␈ε∂that␈αsatis|es␈αthe␈αconditions
␈βπE␈↓ α8␈ελa␈↓ αT␈ε⊗∀␈↓ βα␈ελu␈↓ β!␈εα<␈↓ βO␈ελa␈↓ βi␈εα+␈↓ ∧∃␈ελm␈↓ ∧5␈εα,␈↓ ¬
␈εαand␈↓ ε∂␈ελu␈↓ ε/␈ε⊗⊃␈↓ ε]␈ελu␈↓ πλ␈εα(modulo␈↓ λ∀␈ελm␈↓ λ@␈εα)␈↓ λX␈εαfor␈↓ 	⊂␈εα1␈ε⊗␈α
∀␈↓ 	Z␈ελj␈↓ 	t␈ε⊗∀␈↓ 
"␈ελr␈↓ 
2␈εα.␈↓ α␈εα(6)
␈βπR␈↓ εq␈εj␈↓ λ3␈εj
␈βλ%␈↓ ↓H␈ε∂Proof.␈εα␈α→If␈↓ αd␈ελu␈↓ β∧␈ε⊗⊃␈↓ β2␈ελv␈↓ βP␈εα(modulo␈↓ ∧\␈ελm␈↓ ¬π␈εα)␈α
for␈α1␈ε⊗␈α∀␈↓ ε#␈ελj␈↓ ε>␈ε⊗∀␈↓ εl␈ελr␈↓ ε|␈εα,␈α
then␈↓ πe␈ελu␈↓ λβ␈ε⊗␈␈↓ λ/␈ελv␈↓ λN␈εαis␈αa␈α
m␈α␈ultiple␈αof␈↓ 
H␈ελm␈↓ ␈εαfor
␈βλ2␈↓ ∧z␈εj␈↓ 
g␈εj
␈βλP␈↓ ↓H␈εαall␈↓ ↓y␈ελj␈↓ α	␈εα,␈αso␈α(5)␈αimplies␈αthat␈↓ ∧D␈ελu␈↓ ∧`␈ε⊗␈␈↓ ¬␈ελv␈↓ ¬)␈εαis␈α
a␈αm␈α␈ultiple␈αof␈↓ π≥␈ελm␈↓ πG␈εα=␈↓ πu␈ελm␈↓ λ"␈ελm␈↓ λU␈εα.␈αε.␈αε.␈↓ 	¬␈ελm␈↓ 	1␈εα.␈αThis␈αargumen␈α␈t
␈βλ↑␈↓ λ∀␈ε¬1␈↓ λA␈ε¬2␈↓ 	$␈εr
␈βλ{␈↓ ↓H␈εαsho␈α␈ws␈αthat␈α
there␈αis␈ε∂␈α
at␈α
most␈εα␈αone␈α
solution␈αof␈α
(6).␈α∞To␈αcomplete␈α
the␈αproof␈α
w␈α␈e␈αm␈α␈ust
␈β	'␈↓ ↓H␈εαno␈α␈w␈α∂sho␈α␈w␈α⊂the␈α∂existence␈α∂of␈ε∂␈α⊂at␈α∂least␈εα␈α⊂one␈α∂solution,␈α⊃and␈α∂this␈α⊂can␈α∂be␈α⊂done␈α∂in␈α∂t␈α␈w␈α␈o
␈β	R␈↓ ↓H␈εαsimple␈αways:
␈β
$␈↓ ↓H␈εαMETHOD␈α	1␈α	(\Nonconstructiv␈α␈e"␈α	proof).␈α∪As␈↓ εv␈ελu␈↓ π∃␈εαruns␈α	through␈α	the␈↓ 	"␈ελm␈↓ 	K␈εαdistinct␈α	values
␈β
O␈↓ ↓H␈ελa␈↓ ↓f␈ε⊗∀␈↓ α⊗␈ελu␈↓ α9␈εα<␈↓ αi␈ελa␈↓ β∧␈εα+␈↓ β1␈ελm␈↓ βQ␈εα,␈α∞the␈↓ ∧(␈ελr␈↓ ∧8␈εα-tuples␈α
(␈↓ ¬;␈ελu␈↓ ¬W␈εαmod␈↓ ε!␈ελm␈↓ εN␈εα,␈↓ ε↑␈εα.␈αε.␈αε.␈↓ π∞␈εα,␈↓ π≡␈ελu␈↓ π:␈εαmod␈↓ λ∧␈ελm␈↓ λ/␈εα)␈α∞m␈α␈ust␈α
also␈α∞run␈α
through
␈β
\␈↓ ε@␈ε¬1␈↓ λ"␈εr
␈β
z␈↓ ↓H␈ελm␈↓ ↓x␈εαdistinct␈α⊃values,␈α∩since␈α⊃(6)␈α⊂has␈α⊃at␈α⊃most␈α⊃one␈α⊃solution.␈α~But␈α⊃there␈α⊃are␈α⊂exactly
␈β%␈↓ ↓H␈ελm␈↓ ↓u␈ελm␈↓ α(␈εα.␈αε.␈αε.␈↓ αX␈ελm␈↓ β∞␈εαpossible␈↓ ∧∪␈ελr␈↓ ∧#␈εα-tuples␈α(␈↓ ¬$␈ελv␈↓ ¬B␈εα,␈↓ ¬R␈εα.␈αε.␈αε.␈↓ εα␈εα,␈↓ ε∩␈ελv␈↓ ε/␈εα)␈αsuch␈α
that␈α0␈ε⊗␈α
∀␈↓ λ-␈ελv␈↓ λT␈εα<␈↓ 	α␈ελm␈↓ 	.␈εα.␈αTherefore␈α
each
␈β3␈↓ ↓f␈ε¬1␈↓ α∪␈ε¬2␈↓ αv␈εr␈↓ ¬3␈ε¬1␈↓ ε"␈εr␈↓ λ=␈εj␈↓ 	!␈εj
␈βQ␈↓ ↓H␈ελr␈↓ ↓W␈εα-tuple␈α∞m␈α␈ust␈α
occur␈α∞exactly␈α
once,␈α∞and␈α∞there␈α
m␈α␈ust␈α∞be␈α
some␈α∞value␈α
of␈↓ 	t␈ελu␈↓ 
↔␈εαfor␈α
which
␈β|␈↓ ↓H␈εα(␈↓ ↓T␈ελu␈↓ ↓o␈εαmod␈↓ α9␈ελm␈↓ αf␈εα,␈↓ αv␈εα.␈αε.␈αε.␈↓ β&␈εα,␈↓ β6␈ελu␈↓ βR␈εαmod␈↓ ∧≤␈ελm␈↓ ∧H␈εα)␈α
=␈α
(␈↓ ¬_␈ελu␈↓ ¬;␈εα,␈↓ ¬K␈εα.␈αε.␈αε.␈↓ ¬{␈εα,␈↓ ε␈ελu␈↓ ε-␈εα).
␈β	␈↓ αX␈ε¬1␈↓ ∧;␈εr␈↓ ¬,␈ε¬1␈↓ ε∨␈εr
␈βN␈↓ ↓H␈εαMETHOD␈α∞2␈α∞(\Constructiv␈α␈e"␈α∞proof).␈α≤We␈α∞can␈α∞|nd␈α∞n␈α␈um␈α␈bers␈↓ 		␈ελM␈↓ 	C␈εαfor␈α∞1␈ε⊗␈α∞∀␈↓ 
N␈ελj␈↓ 
k␈ε⊗∀␈↓ ≥␈ελr
␈β[␈↓ 	(␈εj
␈βy␈↓ ↓H␈εαsuch␈αthat
␈β
W␈↓ α<␈ελM␈↓ αs␈ε⊗⊃␈εα␈α
1␈α
(modulo␈↓ ∧I␈ελm␈↓ ∧t␈εα)␈↓ ¬H␈εαand␈↓ εJ␈ελM␈↓ π↓␈ε⊗⊃␈εα␈α
0␈α
(modulo␈↓ λW␈ελm␈↓ 	∧␈εα)␈↓ 	≤␈εαfor␈↓ 	T␈ελk␈↓ 	o␈ε⊗≤␈↓ 
≥␈ελj␈↓ 
.␈εα.␈↓ α␈εα(7)
␈β
d␈↓ α[␈εj␈↓ ∧g␈εj␈↓ εi␈εj␈↓ λu␈εk
␈β∞5␈↓ ↓H␈εαThis␈α
follo␈α␈ws␈α
because␈α∞(5)␈α
implies␈α∞that␈↓ ε≠␈ελm␈↓ εT␈εαand␈↓ π≤␈ελm␈↓ π;␈εα/␈↓ πM␈ελm␈↓ λε␈εαare␈α∞relativ␈α␈ely␈α
prime,␈α∞so␈α
w␈α␈e
␈β∞B␈↓ ε:␈εj␈↓ πl␈εj
␈β∞`␈↓ ↓H␈εαmay␈αtak␈α␈e
␈β∂
␈↓ π↓␈ε⎇␈↓ π∀␈ε¬(␈↓ π≡␈εm␈↓ πC␈ε¬)
␈β∂∪␈↓ ¬(␈ελM␈↓ ¬↑␈εα=␈α
(␈↓ ε_␈ελm␈↓ ε7␈εα/␈↓ εI␈ελm␈↓ εu␈εα)␈↓ α␈εα(8)
␈β∂∃␈↓ π7␈ε
j
␈β∂ ␈↓ ¬G␈εj␈↓ εh␈εj
␈β∂←␈↓ ↓H␈εαby␈αEuler's␈αtheorem␈α(ex␈α␈ercise␈α1.2.4↑28).␈αNo␈α␈w␈αthe␈αn␈α␈um␈α␈ber
␈β⊂≥␈↓ ∧5␈ε↓␈␈↓ 	E␈ε↓↓
␈β⊂<␈↓ β!␈ελu␈↓ βA␈εα=␈↓ βo␈ελa␈↓ ∧	␈εα+␈↓ ∧C␈εα(␈↓ ∧O␈ελu␈↓ ∧r␈ελM␈↓ ¬'␈εα+␈↓ ¬S␈ελu␈↓ ¬v␈ελM␈↓ ε+␈εα+␈↓ εW␈ε⊗↓␈αε↓␈αε↓␈↓ π	␈εα+␈↓ π5␈ελu␈↓ πW␈ελM␈↓ λ␈ε⊗␈␈↓ λ8␈ελa␈↓ λI␈εα)␈↓ λ[␈εαmod␈↓ 	%␈ελm␈↓ α␈εα(9)
␈β⊂J␈↓ ∧c␈ε¬1␈↓ ¬⊃␈ε¬1␈↓ ¬g␈ε¬2␈↓ ε∃␈ε¬2␈↓ πJ␈εr␈↓ πv␈εr
␈β⊃~␈↓ ↓H␈εαsatis|es␈αall␈αthe␈αconditions␈αof␈α(6).
␈β⊃∨␈↓ ¬m␈∧⊃∨¬m≠∂
␈β∪(

␈β↓Y␈↓ ↓H␈εα268␈↓ α=␈ε∞A␈α␈RITH␈α␈METIC␈εα␈↓ 
b4.3.2
␈βα(␈↓ α␈εαA␈α	v␈α␈ery␈αλspecial␈α	case␈α	of␈αλthis␈α	theorem␈αλwas␈α	stated␈α	by␈αλthe␈α	Chinese␈αλmathematician
␈βαS␈↓ ↓H␈εαSun-Ts␈↓ α8␈εαu␈↓ α9␈εα⊃␈↓ αL␈εα,␈α∂who␈α∂gav␈α␈e␈α∂a␈α∂rule␈α∂called␈α∂t␈↓ ¬m␈εα∞␈↓ ¬m␈εαa␈↓ ¬␈␈εαi-y␈α␈en␈α∂(\great␈α∂generalization").␈α∃The␈α∂date␈α∞of
␈βα}␈↓ ↓H␈εαhis␈α
writing␈α
is␈α
v␈α␈ery␈α
uncertain;␈α∞it␈α
is␈α
though␈α␈t␈α
to␈α
be␈α
bet␈α␈w␈α␈een␈α
280␈α∞and␈α
473␈ε∞␈α
A␈α␈.D.␈εα␈α[See
␈ββ*␈↓ ↓H␈εαJoseph␈α∂Needham,␈ε∂␈α⊃Science␈α∂and␈α⊂Civilization␈α∂in␈α⊂China␈ε∩␈α∂3␈εα␈α⊂(Cam␈α␈bridge␈α∂Univ␈α␈ersity
␈ββU␈↓ ↓H␈εαPress,␈α1959),␈α33↑34,␈α119↑120,␈αfor␈αan␈α
in␈α␈teresting␈αdiscussion.]␈αTheorem␈αC␈αwas␈αap-
␈β∧␈↓ ↓H␈εαparen␈α␈tly␈α|rst␈αstated␈αand␈αpro␈α␈v␈α␈ed␈αin␈αits␈αproper␈αgenerality␈αby␈αChhin␈αChiu-Shao␈αin
␈β∧+␈↓ ↓H␈εαhis␈ε∂␈α∞Sh␈α␈u␈α∂Sh␈α␈u␈α∞Chiu␈α∂Chang␈εα␈α∂(1247).␈α∪Numerous␈α∂early␈α∂con␈α␈tributions␈α∞to␈α∂this␈α∞theory
␈β∧V␈↓ ↓H␈εαhav␈α␈e␈α	been␈α	summarized␈α
by␈α	L.␈α	E.␈α
Dickson␈α	in␈α	his␈ε∂␈α
History␈α	of␈α	the␈α
Theory␈α	of␈α	Num␈α␈bers
␈β¬α␈↓ ↓H␈ε∩2␈εα␈α(New␈αYork:␈αChelsea,␈α1952),␈α57↑64.
␈β¬-␈↓ α␈εαAs␈α⊂a␈α∂consequence␈α⊂of␈α⊂Theorem␈α∂C,␈α⊂w␈α␈e␈α⊂may␈α∂use␈α⊂modular␈α⊂represen␈α␈tation␈α∂for
␈β¬X␈↓ ↓H␈εαn␈α␈um␈α␈bers␈αin␈αan␈α␈y␈αconsecutiv␈α␈e␈αin␈α␈terval␈αof␈↓ ε0␈ελm␈↓ εY␈εα=␈↓ ππ␈ελm␈↓ π4␈ελm␈↓ πg␈εα.␈αε.␈αε.␈↓ λ↔␈ελm␈↓ λO␈εαin␈α␈tegers.␈αFor␈αexample,
␈β¬e␈↓ π&␈ε¬1␈↓ πS␈ε¬2␈↓ λ6␈εr
␈βεβ␈↓ ↓H␈εαw␈α␈e␈αcould␈αtak␈α␈e␈↓ β)␈ελa␈↓ βE␈εα=␈α
0␈αin␈α(6),␈αand␈αw␈α␈ork␈αonly␈αwith␈αnonnegativ␈α␈e␈αin␈α␈tegers␈↓ 
α␈ελu␈↓ 
#␈εαless␈αthan
␈βε.␈↓ ↓H␈ελm␈↓ ↓g␈εα.␈αOn␈αthe␈αother␈αhand,␈αwhen␈αaddition␈αand␈αsubtraction␈αare␈αbeing␈α
done,␈αas␈αw␈α␈ell␈α
as
␈βεZ␈↓ ↓H␈εαm␈α␈ultiplication,␈α
it␈α∞is␈α
usually␈α
most␈α
con␈α␈v␈α␈enien␈α␈t␈α∞to␈α
assume␈α
that␈α∞all␈α
the␈α
moduli␈↓ 
u␈ελm␈↓ "␈εα,
␈βεg␈↓ ∀␈ε¬1
␈βπ¬␈↓ ↓H␈ελm␈↓ ↓u␈εα,␈↓ α	␈εα.␈αε.␈αε.␈↓ α9␈εα,␈↓ αN␈ελm␈↓ β∧␈εαare␈α
odd␈αn␈α␈um␈α␈bers,␈α
so␈αthat␈↓ ε∩␈ελm␈↓ ε<␈εα=␈↓ εj␈ελm␈↓ π⊗␈ελm␈↓ πI␈εα.␈αε.␈αε.␈↓ πy␈ελm␈↓ λ0␈εαis␈α
odd,␈αand␈α
to␈α
w␈α␈ork␈α
with
␈βπ∩␈↓ ↓f␈ε¬2␈↓ αl␈εr␈↓ πλ␈ε¬1␈↓ π5␈ε¬2␈↓ λ_␈εr
␈βπ0␈↓ ↓H␈εαin␈α␈tegers␈αin␈αthe␈αrange
␈βπK␈↓ ¬a␈ελm␈↓ π∞␈ελm
␈βπa␈↓ ¬9␈ε⊗␈␈↓ ε∞␈εα<␈↓ ε<␈ελu␈↓ ε\␈εα<␈↓ π2␈εα,␈↓ 
p␈εα(10)
␈βπr␈↓ ¬a␈∧πr¬aα ␈↓ π∞␈∧πrπ∞α 
␈βπz␈↓ ¬g␈εα2␈↓ π∃␈εα2
␈βλ/␈↓ ↓H␈εαwhich␈αis␈αcompletely␈αsymmetrical␈αabout␈αzero.
␈βλZ␈↓ α␈εαTo␈αλperform␈αλthe␈α	basic␈αλoperations␈αλindicated␈αλin␈α	(2),␈α	(3),␈α	and␈αλ(4),␈α	w␈α␈e␈αλneed␈αλto␈αλcom-
␈β	¬␈↓ ↓H␈εαpute␈α	(␈↓ α#␈ελu␈↓ αH␈εα+␈↓ αp␈ελv␈↓ β
␈εα)␈↓ β∨␈εαmod␈↓ βi␈ελm␈↓ ∧∃␈εα,␈α	(␈↓ ∧4␈ελu␈↓ ∧Z␈ε⊗␈␈↓ ¬α␈ελv␈↓ ¬∨␈εα)␈↓ ¬1␈εαmod␈↓ ¬{␈ελm␈↓ ε'␈εα,␈α	and␈↓ ε⎇␈ελu␈↓ π∨␈ελv␈↓ πB␈εαmod␈↓ λ␈ελm␈↓ λ7␈εα,␈α
when␈α	0␈ε⊗␈α
∀␈↓ 	p␈ελu␈↓ 
∩␈εα,␈↓ 
"␈ελv␈↓ 
I␈εα<␈↓ 
w␈ελm␈↓ "␈εα.
␈β	∪␈↓ α7␈εj␈↓ β␈εj␈↓ ∧λ␈εj␈↓ ∧I␈εj␈↓ ¬⊃␈εj␈↓ ε→␈εj␈↓ π⊃␈εj␈↓ π.␈εj␈↓ λ*␈εj␈↓ 
∧␈εj␈↓ 
1␈εj␈↓ ∃␈εj
␈β	1␈↓ ↓H␈εαIf␈↓ ↓k␈ελm␈↓ α#␈εαis␈αa␈αsingle-precision␈αn␈α␈um␈α␈ber,␈αit␈αis␈αmost␈αcon␈α␈v␈α␈enien␈α␈t␈αto␈αform␈↓ 	>␈ελu␈↓ 	`␈ελv␈↓ 
β␈εαmod␈↓ 
M␈ελm␈↓ ∧␈εαby
␈β	>␈↓ α
␈εj␈↓ 	S␈εj␈↓ 	p␈εj␈↓ 
k␈εj
␈β	\␈↓ ↓H␈εαdoing␈αa␈αm␈α␈ultiplication␈αand␈αthen␈αa␈αdivision␈αoperation.␈αFor␈αaddition␈αand␈αsubtrac-
␈β
π␈↓ ↓H␈εαtion,␈αthe␈αsituation␈αis␈αa␈αlittle␈αsimpler,␈αsince␈αno␈αdivision␈αis␈αnecessary;␈αthe␈αfollo␈α␈wing
␈β
2␈↓ ↓H␈εαform␈α␈ulas␈αmay␈αcon␈α␈v␈α␈enien␈α␈tly␈αbe␈αused:
␈β␈↓ ¬≠␈ε↓~
␈ββ␈↓ ¬1␈ελu␈↓ ¬[␈εα+␈↓ επ␈ελv␈↓ ε$␈εα,␈↓ πU␈εαif␈↓ πw␈ελu␈↓ λ!␈εα+␈↓ λM␈ελv␈↓ λt␈εα<␈↓ 	"␈ελm␈↓ 	N␈εα;
␈β⊃␈↓ ¬E␈εj␈↓ ε⊗␈εj␈↓ λ␈εj␈↓ λ]␈εj␈↓ 	A␈εj
␈β≠␈↓ α\␈εα(␈↓ αh␈ελu␈↓ β∩␈εα+␈↓ β>␈ελv␈↓ β[␈εα)␈↓ βm␈εαmod␈↓ ∧7␈ελm␈↓ ∧m␈εα=␈↓ 
p␈εα(11)
␈β(␈↓ α⎇␈εj␈↓ βN␈εj␈↓ ∧V␈εj
␈β/␈↓ ¬1␈ελu␈↓ ¬[␈εα+␈↓ επ␈ελv␈↓ ε,␈ε⊗␈␈↓ εX␈ελm␈↓ πβ␈εα,␈↓ πU␈εαif␈↓ πw␈ελu␈↓ λ!␈εα+␈↓ λM␈ελv␈↓ λt␈ε⊗∃␈↓ 	"␈ελm␈↓ 	N␈εα.
␈β<␈↓ ¬E␈εj␈↓ ε⊗␈εj␈↓ εv␈εj␈↓ λ␈εj␈↓ λ]␈εj␈↓ 	A␈εj
␈βi␈↓ ¬≠␈ε↓~
␈βl␈↓ ¬1␈ελu␈↓ ¬[␈ε⊗␈␈↓ επ␈ελv␈↓ ε$␈εα,␈↓ πU␈εαif␈↓ πw␈ελu␈↓ λ!␈ε⊗␈␈↓ λM␈ελv␈↓ λt␈ε⊗∃␈εα␈α
0;
␈βy␈↓ ¬E␈εj␈↓ ε⊗␈εj␈↓ λ␈εj␈↓ λ]␈εj
␈ββ␈↓ α\␈εα(␈↓ αh␈ελu␈↓ β∩␈ε⊗␈␈↓ β>␈ελv␈↓ β[␈εα)␈↓ βm␈εαmod␈↓ ∧7␈ελm␈↓ ∧m␈εα=␈↓ 
p␈εα(12)
␈β⊂␈↓ α⎇␈εj␈↓ βN␈εj␈↓ ∧V␈εj
␈β↔␈↓ ¬1␈ελu␈↓ ¬[␈ε⊗␈␈↓ επ␈ελv␈↓ ε,␈εα+␈↓ εX␈ελm␈↓ πβ␈εα,␈↓ πU␈εαif␈↓ πw␈ελu␈↓ λ!␈ε⊗␈␈↓ λM␈ελv␈↓ λt␈εα<␈α
0.
␈β$␈↓ ¬E␈εj␈↓ ε⊗␈εj␈↓ εv␈εj␈↓ λ␈εj␈↓ λ]␈εj
␈βn␈↓ ↓H␈εα(Cf.␈αSection␈α3.2.1.1.)␈α_In␈αthis␈αcase,␈αsince␈αw␈α␈e␈αwan␈α␈t␈↓ πO␈ελm␈↓ π{␈εαto␈αbe␈αas␈αlarge␈αas␈αpossible,␈αit
␈β
→␈↓ ↓H␈εαis␈α
easiest␈α
to␈α
let␈↓ β7␈ελm␈↓ βn␈εαbe␈α
the␈α
largest␈αodd␈α
n␈α␈um␈α␈ber␈α
that␈α|ts␈α
in␈α
a␈α
computer␈αw␈α␈ord,␈α
to␈α
let
␈β
&␈↓ βU␈ε¬1
␈β
D␈↓ ↓H␈ελm␈↓ α␈εαbe␈αthe␈αlargest␈αodd␈αn␈α␈um␈α␈ber␈α<␈↓ ¬V␈ελm␈↓ ε∞␈εαthat␈αis␈αrelativ␈α␈ely␈αprime␈αto␈↓ 	.␈ελm␈↓ 	[␈εα,␈αto␈αlet␈↓ 
P␈ελm␈↓ λ␈εαbe
␈β
Q␈↓ ↓f␈ε¬2␈↓ ¬t␈ε¬1␈↓ 	M␈ε¬1␈↓ 
o␈ε¬3
␈β
o␈↓ ↓H␈εαthe␈α
largest␈α
odd␈α
n␈α␈um␈α␈ber␈α
<␈↓ ∧v␈ελm␈↓ ¬0␈εαthat␈α
is␈α
relativ␈α␈ely␈α
prime␈α
to␈α
both␈↓ 	-␈ελm␈↓ 	g␈εαand␈↓ 
.␈ελm␈↓ 
[␈εα,␈α
and
␈β
⎇␈↓ ¬∀␈ε¬2␈↓ 	L␈ε¬1␈↓ 
M␈ε¬2
␈β∞~␈↓ ↓H␈εαso␈α
on␈α
un␈α␈til␈α
enough␈↓ βz␈ελm␈↓ ∧&␈εα's␈α
hav␈α␈e␈α
been␈α
found␈α
to␈α
giv␈α␈e␈α
the␈α
desired␈α
range␈↓ 	s␈ελm␈↓ 
∪␈εα.␈α∞E}cien␈α␈t
␈β∞(␈↓ ∧→␈εj
␈β∞F␈↓ ↓H␈εαways␈α
to␈α
determine␈α
whether␈αor␈α
not␈α
t␈α␈w␈α␈o␈α
in␈α␈tegers␈αare␈α
relativ␈α␈ely␈α
prime␈α
are␈α
discussed
␈β∞q␈↓ ↓H␈εαin␈αSection␈α4.5.2.
␈β∂≤␈↓ α␈εαAs␈α
a␈αsimple␈α
example,␈α
suppose␈αthat␈α
w␈α␈e␈α
hav␈α␈e␈α
a␈αdecimal␈α
computer␈α
with␈α
a␈α
w␈α␈ord
␈β∂G␈↓ ↓H␈εαsize␈αof␈αonly␈α100.␈αThen␈αthe␈αprocedure␈αdescribed␈αin␈αthe␈αprevious␈αparagraph␈αw␈α␈ould
␈β∂r␈↓ ↓H␈εαgiv␈α␈e
␈β⊂G␈↓ ↓H␈ελm␈↓ ↓␈␈εα=␈α
99,␈↓ β¬␈ελm␈↓ β<␈εα=␈α
97,␈↓ ∧B␈ελm␈↓ ∧y␈εα=␈α
95,␈↓ ¬␈␈ελm␈↓ ε6␈εα=␈α
91,␈↓ π<␈ελm␈↓ πr␈εα=␈α
89,␈↓ λx␈ελm␈↓ 	/␈εα=␈α
83,␈↓ 
p␈εα(13)
␈β⊂U␈↓ ↓f␈ε¬1␈↓ β#␈ε¬2␈↓ ∧`␈ε¬3␈↓ ε≥␈ε¬4␈↓ πZ␈ε¬5␈↓ 	↔␈ε¬6
␈β⊃≤␈↓ ↓H␈εαand␈αso␈αon.
␈β∪(

␈β↓Y␈↓ ↓H␈εα4.3.2␈ε∞␈↓ πlMODU␈α␈LAR␈α	ARIT␈α␈HMET␈α␈IC␈↓ 
v␈εα269
␈βα%␈↓ α␈εαOn␈α	binary␈α	computers␈α	it␈α	is␈α	sometimes␈α	desirable␈α	to␈α	choose␈α	the␈↓ 	3␈ελm␈↓ 	g␈εαin␈α	a␈α	di{eren␈α␈t
␈βα2␈↓ 	Q␈εj
␈βαP␈↓ ↓H␈εαway,␈αby␈αselecting
␈βα|␈↓ εB␈εe
␈ββα␈↓ ¬L␈ελm␈↓ εα␈εα=␈↓ ε0␈εα2␈↓ ε`␈ε⊗␈␈εα␈αλ1.␈↓ 
p␈εα(14)
␈ββ∧␈↓ εM␈ε
j
␈ββ∂␈↓ ¬j␈εj
␈ββM␈↓ ↓H␈εαIn␈αother␈αw␈α␈ords,␈αeach␈αmodulus␈αis␈αone␈αless␈αthan␈αa␈αpo␈α␈w␈α␈er␈αof␈α2.␈αSuch␈αa␈αchoice␈αof␈↓ ↓␈ελm
␈ββZ␈↓ ∨␈εj
␈ββx␈↓ ↓H␈εαoften␈α
mak␈α␈es␈αthe␈α
basic␈αarithmetic␈αoperations␈α
simpler,␈αbecause␈αit␈α
is␈αrelativ␈α␈ely␈α
easy
␈β∧≡␈↓ βW␈εe
␈β∧#␈↓ ↓H␈εαto␈α	w␈α␈ork␈α	modulo␈↓ βE␈εα2␈↓ βr␈ε⊗␈␈εα␈α¬1,␈α
as␈α	in␈α	ones'␈α
complemen␈α␈t␈α	arithmetic.␈αWhen␈α
the␈α	moduli␈α	are
␈β∧'␈↓ βb␈ε
j
␈β∧N␈↓ ↓H␈εαchosen␈αλaccording␈αλto␈α	this␈αλstrategy,␈α	it␈α	is␈αλhelpful␈αλto␈α	relax␈αλthe␈αλcondition␈α	0␈ε⊗␈α
∀␈↓ 
'␈ελu␈↓ 
S␈εα<␈↓ ↓␈ελm
␈β∧\␈↓ 
;␈εj␈↓ ∨␈εj
␈β∧y␈↓ ↓H␈εαsligh␈α␈tly,␈αso␈αthat␈αw␈α␈e␈αrequire␈αonly
␈β¬P␈↓ ¬→␈εe␈↓ λ∨␈εe
␈β¬V␈↓ βc␈εα0␈ε⊗␈α
∀␈↓ ∧-␈ελu␈↓ ∧Y␈εα<␈↓ ¬π␈εα2␈↓ ¬/␈εα,␈↓ επ␈ελu␈↓ ε3␈ε⊗⊃␈↓ εa␈ελu␈↓ π↓␈εα(modulo␈↓ λ
␈εα2␈↓ λ=␈ε⊗␈␈εα␈αλ1).␈↓ 
p␈εα(15)
␈β¬Y␈↓ ¬$␈ε
j␈↓ λ*␈ε
j
␈β¬d␈↓ ∧A␈εj␈↓ ε≤␈εj
␈βε.␈↓ ¬A␈εe
␈βε3␈↓ ↓H␈εαTh␈α␈us,␈α⊂the␈α⊂value␈↓ βW␈ελu␈↓ ∧	␈εα=␈↓ ∧>␈ελm␈↓ ∧z␈εα=␈↓ ¬/␈εα2␈↓ ¬b␈ε⊗␈␈εα␈α
1␈α⊂is␈α⊂allo␈α␈w␈α␈ed␈α⊂as␈α⊂an␈α⊂optional␈α⊂alternativ␈α␈e␈α∂to
␈βε7␈↓ ¬L␈ε
j
␈βεA␈↓ βl␈εj␈↓ ∧\␈εj
␈βε↑␈↓ ↓H␈ελu␈↓ ↓s␈εα=␈α
0,␈αsince␈α	this␈α
does␈α
not␈α	a{ect␈α
the␈α
validity␈α	of␈α
Theorem␈α
C␈↓ λe␈εα,␈α
and␈α	it␈α
means␈α
w␈α␈e␈α	are
␈βεl␈↓ ↓\␈εj
␈βπ
␈↓ ↓H␈εαallo␈α␈wing␈↓ αQ␈ελu␈↓ αz␈εαto␈αλbe␈αλan␈α␈y␈↓ ∧∂␈ελe␈↓ ∧)␈εα-bit␈αλbinary␈αλn␈α␈um␈α␈ber.␈αUnder␈αλthis␈αλassumption,␈α	the␈απoperations
␈βπ↔␈↓ αe␈εj␈↓ ∧≤␈εj
␈βπ5␈↓ ↓H␈εαof␈αaddition␈αand␈αm␈α␈ultiplication␈αmodulo␈↓ ε-␈ελm␈↓ εd␈εαbecome␈αthe␈αfollo␈α␈wing:
␈βπB␈↓ εK␈εj
␈βλ␈↓ 	5␈εe
␈βλ∞␈↓ ∧	␈ε↓~
␈βλ⊂␈↓ ∧∨␈ελu␈↓ ∧I␈εα+␈↓ ∧u␈ελv␈↓ ¬∩␈εα,␈↓ πV␈εαif␈↓ πx␈ελu␈↓ λ"␈εα+␈↓ λN␈ελv␈↓ λu␈εα<␈↓ 	#␈εα2␈↓ 	L␈εα;
␈βλ∀␈↓ 	@␈ε
j
␈βλ≤␈↓ ∧∨␈ε↓␈␈↓ ε0␈ε↓↓
␈βλ≥␈↓ ∧4␈εj␈↓ ¬¬␈εj␈↓ λ
␈εj␈↓ λ↑␈εj
␈βλ(␈↓ α↑␈ελu␈↓ βλ␈ε⊗λ␈↓ β4␈ελv␈↓ β[␈εα=␈↓ 
p␈εα(16)
␈βλ6␈↓ αs␈εj␈↓ βD␈εj␈↓ ε~␈εe␈↓ 	5␈εe
␈βλ;␈↓ ∧-␈εα(␈↓ ∧9␈ελu␈↓ ∧c␈εα+␈↓ ¬∂␈ελv␈↓ ¬,␈εα)␈↓ ¬>␈εαmod␈↓ ελ␈εα2␈↓ εF␈εα+␈αλ1,␈↓ πV␈εαif␈↓ πx␈ελu␈↓ λ"␈εα+␈↓ λN␈ελv␈↓ λu␈ε⊗∃␈↓ 	#␈εα2␈↓ 	L␈εα.
␈βλ?␈↓ ε%␈ε
j␈↓ 	@␈ε
j
␈βλI␈↓ ∧N␈εj␈↓ ¬∨␈εj␈↓ λ
␈εj␈↓ λ↑␈εj
␈βλy␈↓ ¬6␈εe␈↓ π⊃␈εe
␈βλ␈␈↓ α↑␈ελu␈↓ βλ␈ε⊗␈
␈↓ β4␈ελv␈↓ β[␈εα=␈α
(␈↓ ∧∃␈ελu␈↓ ∧7␈ελv␈↓ ∧Z␈εαmod␈↓ ¬$␈εα2␈↓ ¬L␈εα)␈ε⊗␈α∩λ␈α∩b␈↓ ε.␈ελu␈↓ εP␈ελv␈↓ εm␈εα/␈↓ ε␈␈εα2␈↓ π(␈ε⊗c␈εα.␈↓ 
p␈εα(17)
␈β	↓␈↓ ¬A␈ε
j␈↓ π≤␈ε
j
␈β	␈↓ αs␈εj␈↓ βD␈εj␈↓ ∧*␈εj␈↓ ∧G␈εj␈↓ εC␈εj␈↓ ε`␈εj
␈β	<␈↓ ↓H␈ε↓␈
␈β	\␈↓ ↓V␈εαHere␈ε⊗␈α∞λ␈εα␈α∞and␈ε⊗␈α∂␈
␈εα␈α∞refer␈α∞to␈α∞the␈α∂operations␈α∞done␈α∞on␈α∂the␈α∞individual␈α∞componen␈α␈ts␈α∞of
␈β
π␈↓ ↓H␈εα(␈↓ ↓T␈ελu␈↓ ↓w␈εα,␈↓ απ␈εα.␈αε.␈αε.␈↓ α7␈εα,␈↓ αG␈ελu␈↓ αi␈εα)␈α
and␈α
(␈↓ βU␈ελv␈↓ βs␈εα,␈↓ ∧β␈εα.␈αε.␈αε.␈↓ ∧3␈εα,␈↓ ∧C␈ελv␈↓ ∧`␈εα)␈α∞when␈α
adding␈α
or␈α∞m␈α␈ultiplying,␈α
respectiv␈α␈ely,␈α∞using␈α
the
␈β
∪␈↓ βD␈ε↓↓
␈β
∀␈↓ ↓h␈ε¬1␈↓ α[␈εr␈↓ βe␈ε¬1␈↓ ∧S␈εr
␈β
2␈↓ ↓H␈εαcon␈α␈v␈α␈en␈α␈tion␈α
(15).␈↓ β`␈εαEquation␈α
(12)␈α∞may␈α
be␈α∞used␈α
for␈α∞subtraction.␈α⊂These␈α
operations
␈β
]␈↓ ↓H␈εαcan␈α∞be␈α∞performed␈α∞e}cien␈α␈tly␈α∞ev␈α␈en␈α∞when␈↓ εG␈ελm␈↓ π↓␈εαis␈α∞larger␈α∞than␈α∞the␈α∞computer's␈α∞w␈α␈ord
␈β
k␈↓ εe␈εj
␈β	␈↓ ↓H␈εαsize,␈α
since␈αit␈α
is␈α
a␈αsimple␈α
matter␈α
to␈αcompute␈α
the␈α
remainder␈αof␈α
a␈α
positiv␈α␈e␈αn␈α␈um␈α␈ber
␈β4␈↓ ↓H␈εαmodulo␈α∞a␈α∞po␈α␈w␈α␈er␈α∞of␈α∞2,␈α∂or␈α∞to␈α∞divide␈α∞a␈α∞n␈α␈um␈α␈ber␈α∞by␈α∞a␈α∂po␈α␈w␈α␈er␈α∞of␈α∞2.␈α∩In␈α∞(17)␈α∞w␈α␈e␈α∞hav␈α␈e
␈β←␈↓ ↓H␈εαthe␈αsum␈αof␈αthe␈α\upper␈αhalf"␈αand␈αthe␈α\lo␈α␈w␈α␈er␈αhalf"␈αof␈αthe␈αproduct,␈αas␈αdiscussed␈αin
␈β
␈↓ ↓H␈εαex␈α␈ercise␈α3.2.1.1↑8.
␈β2␈↓ ∧q␈εe
␈β7␈↓ α␈εαIf␈αmoduli␈α
of␈αthe␈αform␈↓ ∧←␈εα2␈↓ ¬∞␈ε⊗␈␈εα␈απ1␈α
are␈αto␈αbe␈α
used,␈αw␈α␈e␈αm␈α␈ust␈α
kno␈α␈w␈αunder␈αwhat␈α
con-
␈β;␈↓ ∧⎇␈ε
j
␈β↑␈↓ ∧␈εe␈↓ 	↓␈εf
␈βc␈↓ ↓H␈εαditions␈α
the␈αn␈α␈um␈α␈ber␈↓ βy␈εα2␈↓ ∧≥␈ε⊗␈␈εα␈αε1␈α
is␈αrelativ␈α␈ely␈α
prime␈αto␈α
the␈αn␈α␈um␈α␈ber␈↓ λo␈εα2␈↓ 	∃␈ε⊗␈␈εα␈αε1.␈αFortunately,
␈β
∞␈↓ ↓H␈εαthere␈αis␈αa␈αv␈α␈ery␈αsimple␈αrule,
␈β
e␈↓ ∧⎇␈εe␈↓ ¬q␈εf␈↓ π≠␈ε¬gcd␈↓ πF␈ε¬(␈↓ πP␈εe␈↓ π[␈ε¬,␈↓ πc␈εf␈↓ πq␈ε¬)
␈β
k␈↓ ∧)␈εαgcd␈↓ ∧←␈εα(␈↓ ∧k␈εα2␈↓ ¬⊃␈ε⊗␈␈εα␈αλ1,␈↓ ¬←␈εα2␈↓ επ␈ε⊗␈␈εα␈αλ1)␈α
=␈↓ π	␈εα2␈↓ λβ␈ε⊗␈␈εα␈αλ1,␈↓ 
p␈εα(18)
␈β∞B␈↓ ¬>␈εe␈↓ εm␈εf
␈β∞H␈↓ ↓H␈εαwhich␈α
states␈αin␈α
particular␈αthat␈↓ ¬,␈εα2␈↓ ¬P␈ε⊗␈␈εα␈αε1␈ε∂␈α
and␈↓ ε[␈εα2␈↓ π↓␈ε⊗␈␈εα␈αε1␈ε∂␈α
are␈αrelativ␈α␈ely␈α
prime␈α
if␈αand␈α
only
␈β∞s␈↓ ↓H␈ε∂if␈↓ ↓g␈ελe␈↓ ↓␈␈ε∂and␈↓ αC␈ελf␈↓ α↑␈ε∂are␈α
relativ␈α␈ely␈α
prime␈εα.␈αEquation␈α
(18)␈α
follo␈α␈ws␈α
from␈α
Euclid's␈α
algorithm␈α	and
␈β∂≡␈↓ ↓H␈εαthe␈αiden␈α␈tity
␈β∂I␈↓ ∧9␈εe␈↓ ε¬␈εf␈↓ π/␈εe␈↓ π@␈ε¬mod␈↓ π{␈εf
␈β∂P␈↓ ∧≠␈εα(␈↓ ∧'␈εα2␈↓ ∧M␈ε⊗␈␈εα␈αλ1)␈↓ ¬≥␈εαmod␈↓ ¬g␈εα(␈↓ ¬s␈εα2␈↓ ε≠␈ε⊗␈␈εα␈αλ1)␈α
=␈↓ π≥␈εα2␈↓ λ⊃␈ε⊗␈␈εα␈αλ1.␈↓ 
p␈εα(19)
␈β⊂∃␈↓ λ\␈ε¬35␈↓ 
E␈ε¬34
␈β⊂~␈↓ ↓H␈εα(See␈α
ex␈α␈ercise␈α
6.)␈αTh␈α␈us␈α
w␈α␈e␈α
could␈α
choose␈αfor␈α
example␈↓ πe␈ελm␈↓ λ≤␈εα=␈↓ λJ␈εα2␈↓ λ}␈ε⊗␈␈εα␈α¬1,␈↓ 	N␈ελm␈↓ 
¬␈εα=␈↓ 
3␈εα2␈↓ 
g␈ε⊗␈␈εα␈α¬1,
␈β⊂(␈↓ λβ␈ε¬1␈↓ 	l␈ε¬2
␈β⊂A␈↓ αB␈ε¬3␈α↓3␈↓ ∧9␈ε¬31␈↓ ε0␈ε¬29
␈β⊂F␈↓ ↓H␈ελm␈↓ α↓␈εα=␈↓ α0␈εα2␈↓ αh␈ε⊗␈␈εα␈α	1,␈↓ β>␈ελm␈↓ βw␈εα=␈↓ ∧'␈εα2␈↓ ∧←␈ε⊗␈␈εα␈αλ1,␈↓ ¬5␈ελm␈↓ ¬n␈εα=␈↓ ε≡␈εα2␈↓ εU␈ε⊗␈␈εα␈α	1,␈α
if␈α∞w␈α␈e␈α
had␈α
a␈α
computer␈α
with␈α
w␈α␈ord
␈β⊂S␈↓ ↓f␈ε¬3␈↓ β]␈ε¬4␈↓ ¬S␈ε¬5
␈β⊂l␈↓ α≡␈ε¬3␈α↓5
␈β⊂q␈↓ ↓H␈εαsize␈↓ α␈εα2␈↓ α;␈εα;␈α
this␈α
w␈α␈ould␈α
permit␈α
e}cien␈α␈t␈α
addition,␈α
subtraction,␈α
and␈α
m␈α␈ultiplication␈αof
␈β⊃↔␈↓ π∂␈ε¬1␈α↓61
␈β⊃≤␈↓ ↓H␈εαin␈α␈tegers␈αin␈αa␈αrange␈αof␈αsize␈↓ ∧e␈ελm␈↓ ¬∩␈ελm␈↓ ¬?␈ελm␈↓ ¬l␈ελm␈↓ ε→␈ελm␈↓ εO␈εα>␈↓ ε⎇␈εα2␈↓ π;␈εα.
␈β⊃)␈↓ ¬β␈ε¬1␈↓ ¬0␈ε¬2␈↓ ¬]␈ε¬3␈↓ ε
␈ε¬4␈↓ ε7␈ε¬5
␈β∪(

␈β↓Y␈↓ ↓H␈εα270␈↓ α=␈ε∞A␈α␈RITH␈α␈METIC␈εα␈↓ 
b4.3.2
␈βα(␈↓ α␈εαAs␈α∩w␈α␈e␈α∩hav␈α␈e␈α⊃already␈α∩observ␈α␈ed,␈α∀the␈α⊃operations␈α∩of␈α∩con␈α␈v␈α␈ersion␈α∩to␈α∩and␈α⊃from
␈βαS␈↓ ↓H␈εαmodular␈α⊃represen␈α␈tation␈α⊂are␈α⊃v␈α␈ery␈α⊃importan␈α␈t.␈α≠If␈α⊃w␈α␈e␈α⊃are␈α⊃giv␈α␈en␈α⊃a␈α⊃n␈α␈um␈α␈ber␈↓ 
U␈ελu␈↓ 
j␈εα,␈α∩its
␈βα}␈↓ ↓H␈εαmodular␈α
represen␈α␈tation␈α
(␈↓ ∧O␈ελu␈↓ ∧r␈εα,␈↓ ¬α␈εα.␈αε.␈αε.␈↓ ¬2␈εα,␈↓ ¬B␈ελu␈↓ ¬d␈εα)␈α
may␈α
be␈α
obtained␈α
by␈α
dividing␈↓ 	V␈ελu␈↓ 	y␈εαby␈↓ 
.␈ελm␈↓ 
[␈εα,␈↓ 
r␈εα.␈αε.␈αε.␈↓ "␈εα,
␈ββ␈↓ ∧c␈ε¬1␈↓ ¬V␈εr␈↓ 
M␈ε¬1
␈ββ*␈↓ ↓H␈ελm␈↓ αβ␈εαand␈α∂saving␈α⊂the␈α∂remainders.␈α⊗A␈α∂possibly␈α⊂more␈α∂attractiv␈α␈e␈α⊂procedure,␈α⊂if␈↓ 
c␈ελu␈↓ λ␈εα=
␈ββ7␈↓ ↓f␈εr
␈ββU␈↓ ↓H␈εα(␈↓ ↓T␈ελv␈↓ ↓⎇␈ελv␈↓ αX␈εα.␈αε.␈αε.␈↓ βλ␈ελv␈↓ β&␈εα)␈↓ β>␈εα,␈αis␈αto␈αevaluate␈αthe␈αpolynomial
␈ββb␈↓ ↓c␈εm␈↓ α
␈εm␈↓ α'␈ε→␈␈ε¬1␈↓ β_␈ε¬0␈↓ β2␈εb
␈β∧
␈↓ ∧>␈ε↓␈␈↓ πA␈ε↓↓
␈β∧,␈↓ ∧L␈εα.␈αε.␈αε.␈↓ ∧|␈εα(␈↓ ¬λ␈ελv␈↓ ¬2␈ελb␈↓ ¬H␈εα+␈↓ ¬t␈ελv␈↓ εI␈εα)␈↓ εU␈ελb␈↓ εk␈εα+␈↓ π↔␈ε⊗↓␈αε↓␈αε↓␈↓ πU␈ελb␈↓ πl␈εα+␈↓ λ_␈ελv
␈β∧:␈↓ ¬_␈εm␈↓ ε∧␈εm␈↓ ε≡␈ε→␈␈ε¬1␈↓ λ(␈ε¬0
␈β¬∧␈↓ ↓H␈εαusing␈α	modular␈α
arithmetic.␈αWhen␈↓ ¬L␈ελb␈↓ ¬d␈εα=␈α
2␈α
and␈α	when␈α
the␈α	modulus␈↓ 	⊗␈ελm␈↓ 	K␈εαhas␈α
the␈α	special
␈β¬⊃␈↓ 	4␈εj
␈β¬*␈↓ α-␈εe
␈β¬/␈↓ ↓H␈εαform␈↓ α≠␈εα2␈↓ αI␈ε⊗␈␈εα␈α∧1,␈αboth␈α	of␈α
these␈α	methods␈α
reduce␈α	to␈α
quite␈α
a␈α	simple␈α
procedure:␈α
Consider
␈β¬3␈↓ α8␈ε
j
␈β¬Z␈↓ ↓H␈εαthe␈αbinary␈αrepresen␈α␈tation␈αof␈↓ ¬
␈ελu␈↓ ¬.␈εαwith␈αblocks␈αof␈↓ π_␈ελe␈↓ π?␈εαbits␈αgrouped␈αtogether,
␈β¬h␈↓ π%␈εj
␈βε,␈↓ ∧}␈εt␈↓ ε≠␈εt␈↓ ε%␈ε→␈␈ε¬1
␈βε2␈↓ β⎇␈ελu␈↓ ∧≥␈εα=␈↓ ∧K␈ελa␈↓ ∧f␈ελA␈↓ ¬⊂␈εα+␈↓ ¬<␈ελa␈↓ εβ␈ελA␈↓ εY␈εα+␈↓ π¬␈ε⊗↓␈αε↓␈αε↓␈↓ π7␈εα+␈↓ πc␈ελa␈↓ λα␈ελA␈↓ λ"␈εα+␈↓ λN␈ελa␈↓ λm␈εα,␈↓ 
p␈εα(20)
␈βε?␈↓ ∧[␈εt␈↓ ¬M␈εt␈↓ ¬X␈ε→␈␈ε¬1␈↓ πs␈ε¬1␈↓ λ←␈ε¬0
␈βπ∧␈↓ β∩␈εe␈↓ ¬.␈εe
␈βπ
␈↓ ↓H␈εαwhere␈↓ α0␈ελA␈↓ αR␈εα=␈↓ β␈εα2␈↓ β4␈εαand␈α0␈ε⊗␈α
∀␈↓ ∧D␈ελa␈↓ ∧n␈εα<␈↓ ¬≤␈εα2␈↓ ¬P␈εαfor␈α0␈ε⊗␈α
∀␈↓ εR␈ελk␈↓ εn␈ε⊗∀␈↓ π≤␈ελt␈↓ π)␈εα.␈αThen
␈βπ
␈↓ β≥␈ε
j␈↓ ¬9␈ε
j
␈βπ↔␈↓ ∧U␈εk
␈βπ[␈↓ λI␈εe
␈βπa␈↓ β9␈ελu␈↓ βX␈ε⊗⊃␈↓ ∧ε␈ελa␈↓ ∧*␈εα+␈↓ ∧V␈ελa␈↓ ¬$␈εα+␈↓ ¬P␈ε⊗↓␈αε↓␈αε↓␈↓ εα␈εα+␈↓ ε.␈ελa␈↓ εU␈εα+␈↓ π↓␈ελa␈↓ π+␈εα(modulo␈↓ λ7␈εα2␈↓ λg␈ε⊗␈␈εα␈αλ1),␈↓ 
p␈εα(21)
␈βπd␈↓ λT␈ε
j
␈βπo␈↓ ∧↔␈εt␈↓ ∧g␈εt␈↓ ∧q␈ε→␈␈ε¬1␈↓ ε?␈ε¬1␈↓ π∩␈ε¬0
␈βλ9␈↓ ↓H␈εαsince␈↓ α≥␈ελA␈↓ α?␈ε⊗⊃␈εα␈α
1,␈α	so␈α	w␈α␈e␈α
may␈α	obtain␈↓ ¬(␈ελu␈↓ ¬S␈εαby␈α	adding␈α	the␈↓ π2␈ελe␈↓ πL␈εα-bit␈α	n␈α␈um␈α␈bers␈↓ 	~␈ελa␈↓ 	:␈ε⊗λ␈↓ 	b␈ε⊗↓␈αε↓␈αε↓␈↓ 
⊂␈ε⊗λ␈↓ 
8␈ελa␈↓ 
[␈ε⊗λ␈↓ β␈ελa␈↓ "␈εα,
␈βλF␈↓ ¬<␈εj␈↓ π?␈εj␈↓ 	+␈εt␈↓ 
I␈ε¬1␈↓ ∀␈ε¬0
␈βλd␈↓ ↓H␈εαusing␈α
(16).␈α⊃This␈α
process␈α∞is␈α
similar␈α∞to␈α
the␈α∞familiar␈α
device␈α∞of␈α
\casting␈α∞out␈α
nines"
␈β	∂␈↓ ↓H␈εαthat␈αdetermines␈↓ βL␈ελu␈↓ βg␈εαmod␈↓ ∧1␈εα9␈αwhen␈↓ ¬-␈ελu␈↓ ¬O␈εαis␈αexpressed␈αin␈αthe␈αdecimal␈αsystem.
␈β	;␈↓ α␈εαCon␈α␈v␈α␈ersion␈αλback␈α	from␈αλmodular␈αλform␈αλto␈αλpositional␈α	notation␈αλis␈αλsomewhat␈αλmore
␈β	f␈↓ ↓H␈εαdi}cult.␈αIt␈α	is␈α
in␈α␈teresting␈α	in␈α	this␈α
regard␈α	to␈α
mak␈α␈e␈α	a␈α	few␈α
side␈α	remarks␈α
about␈α	the␈α	way
␈β
⊃␈↓ ↓H␈εαcomputers␈αλmak␈α␈e␈α	us␈αλchange␈αλour␈α	viewpoin␈α␈t␈αλto␈α␈wards␈α	mathematical␈αλproofs:␈α
Theorem
␈β
<␈↓ ↓H␈εαC␈α
tells␈αus␈α
that␈α
the␈α
con␈α␈v␈α␈ersion␈α
from␈α
(␈↓ ε∞␈ελu␈↓ ε1␈εα,␈↓ εA␈εα.␈αε.␈αε.␈↓ εq␈εα,␈↓ π↓␈ελu␈↓ π#␈εα)␈αto␈↓ πh␈ελu␈↓ λ␈εαis␈α
possible,␈α
and␈α
t␈α␈w␈α␈o␈αproofs
␈β
J␈↓ ε"␈ε¬1␈↓ π∃␈εr
␈β
h␈↓ ↓H␈εαare␈αgiv␈α␈en.␈αThe␈α|rst␈αproof␈αw␈α␈e␈αconsidered␈αis␈αa␈αclassical␈αone␈αthat␈αmak␈α␈es␈αuse␈αonly␈αof
␈β∪␈↓ ↓H␈εαv␈α␈ery␈αsimple␈αconcepts,␈αnamely␈αthe␈αfacts␈αthat
␈βJ␈↓ ↓j␈εαi)␈↓ α␈εαan␈α␈y␈αn␈α␈um␈α␈ber␈αthat␈αis␈αa␈αm␈α␈ultiple␈αof␈↓ ε⊗␈ελm␈↓ εN␈εαand␈αof␈↓ π=␈ελm␈↓ πj␈εα,␈↓ π␈␈εα.␈αε.␈αε.␈↓ λ/␈εα,␈↓ λE␈ελm␈↓ λq␈εα,␈αm␈α␈ust␈αbe␈αa␈αm␈α␈ultiple
␈βX␈↓ ε4␈ε¬1␈↓ π[␈ε¬2␈↓ λc␈εr
␈βu␈↓ α␈εαof␈↓ α6␈ελm␈↓ αc␈ελm␈↓ β⊗␈εα.␈αε.␈αε.␈↓ βF␈ελm␈↓ β}␈εαwhen␈αthe␈↓ ¬~␈ελm␈↓ ¬F␈εα's␈αare␈αpairwise␈αrelativ␈α␈ely␈αprime;␈αand
␈ββ␈↓ αU␈ε¬1␈↓ βα␈ε¬2␈↓ βe␈εr␈↓ ¬8␈εj
␈β-␈↓ ↓`␈εαii)␈↓ α␈εαif␈↓ α.␈ελm␈↓ α[␈εαthings␈αare␈αput␈α
in␈α␈to␈↓ ¬∂␈ελm␈↓ ¬;␈εαbo␈α␈x␈α␈es␈α
with␈αno␈α
t␈α␈w␈α␈o␈αthings␈α
in␈αthe␈αsame␈α
bo␈α␈x,␈αthen
␈βX␈↓ α␈εαthere␈αm␈α␈ust␈αbe␈αone␈αin␈αeach␈αbo␈α␈x.
␈β
⊂␈↓ ↓H␈εαBy␈απtraditional␈απnotions␈αλof␈απmathematical␈απaesthetics,␈α	this␈απis␈απno␈απdoubt␈αλthe␈απnicest␈απproof
␈β
;␈↓ ↓H␈εαof␈αTheorem␈αC;␈αbut␈αfrom␈αa␈αcomputational␈αstandpoin␈α␈t␈αit␈αis␈αcompletely␈αw␈α␈orthless.
␈β
f␈↓ ↓H␈εαIt␈α
amoun␈α␈ts␈α∞to␈α∞saying,␈α∞\Try␈↓ ¬π␈ελu␈↓ ¬*␈εα=␈↓ ¬[␈ελa␈↓ ¬l␈εα,␈↓ ε¬␈ελa␈↓ ε ␈εα+␈α	1,␈↓ εw␈εα.␈αε.␈αε.␈↓ π.␈εαun␈α␈til␈α∞y␈α␈ou␈α∞|nd␈α
a␈α∞value␈α∞for␈α
which
␈β∞⊃␈↓ ↓H␈ελu␈↓ ↓g␈ε⊗⊃␈↓ α∃␈ελu␈↓ αB␈εα(modulo␈↓ βN␈ελm␈↓ β{␈εα),␈↓ ∧≥␈εα.␈αε.␈αε.␈↓ ∧M␈εα,␈↓ ∧c␈ελu␈↓ ¬β␈ε⊗⊃␈↓ ¬1␈ελu␈↓ ¬]␈εα(modulo␈↓ εi␈ελm␈↓ π∃␈εα)."
␈β∞∨␈↓ α*␈ε¬1␈↓ βm␈ε¬1␈↓ ¬E␈εr␈↓ ππ␈εr
␈β∞=␈↓ α␈εαThe␈α
second␈α
proof␈αof␈α
Theorem␈α
C␈α
is␈αmore␈α
explicit;␈α
it␈α
sho␈α␈ws␈α
ho␈α␈w␈α
to␈αcompute
␈β∞h␈↓ ↓H␈ελr␈↓ ↓c␈εαnew␈αconstan␈α␈ts␈↓ βK␈ελM␈↓ βx␈εα,␈↓ ∧∞␈εα.␈αε.␈αε.␈↓ ∧>␈εα,␈↓ ∧T␈ελM␈↓ ¬␈εα,␈αand␈αto␈αget␈αthe␈αsolution␈αin␈αterms␈αof␈αthese␈αconstan␈α␈ts
␈β∞v␈↓ βj␈ε¬1␈↓ ∧s␈εr
␈β∂∪␈↓ ↓H␈εαby␈α
form␈α␈ula␈α(9).␈αThis␈αproof␈α
uses␈αmore␈αcomplicated␈αconcepts␈α(for␈α
example,␈αEuler's
␈β∂?␈↓ ↓H␈εαtheorem),␈αλbut␈αλit␈απis␈αλm␈α␈uch␈απmore␈αλsatisfactory␈απfrom␈αλa␈απcomputational␈αλstandpoin␈α␈t,␈αλsince
␈β∂j␈↓ ↓H␈εαthe␈αconstan␈α␈ts␈↓ β$␈ελM␈↓ βR␈εα,␈↓ βh␈εα.␈αε.␈αε.␈↓ ∧_␈εα,␈↓ ∧.␈ελM␈↓ ∧f␈εαneed␈αto␈αbe␈αdetermined␈αonly␈αonce.␈αOn␈αthe␈αother␈αhand,
␈β∂w␈↓ βC␈ε¬1␈↓ ∧M␈εr
␈β⊂∃␈↓ ↓H␈εαthe␈α	determination␈α
of␈↓ ∧⊂␈ελM␈↓ ∧F␈εαby␈α
Eq.␈α	(8)␈α
is␈α	certainly␈α
not␈α
trivial,␈α
since␈α	the␈α
evaluation␈α	of
␈β⊂"␈↓ ∧/␈εj
␈β⊂@␈↓ ↓H␈εαEuler's␈↓ α=␈ελ⎇␈↓ αU␈εα-function␈α	requires,␈α
in␈α
general,␈α
the␈α
factorization␈α	of␈↓ λY␈ελm␈↓ 	∞␈εαin␈α␈to␈α
prime␈α	po␈α␈w␈α␈ers.
␈β⊂N␈↓ λw␈εj
␈β⊂k␈↓ ↓H␈εαFurthermore,␈↓ β$␈ελM␈↓ β[␈εαis␈α
lik␈α␈ely␈αto␈α
be␈α
a␈αterribly␈α
large␈α
n␈α␈um␈α␈ber,␈αev␈α␈en␈α
if␈αw␈α␈e␈α
compute␈α
only
␈β⊂w␈↓ ∧2␈ε↓␈␈↓ 	∀␈ε↓↓
␈β⊂y␈↓ βC␈εj
␈β⊃↔␈↓ ↓H␈εαthe␈απquan␈α␈tity␈↓ β∞␈ελM␈↓ β@␈εαmod␈↓ ∧
␈ελm␈↓ ∧@␈εαwhich␈αλwill␈απw␈α␈ork␈αλjust␈αλas␈αλw␈α␈ell␈αλas␈↓ λ⊂␈ελM␈↓ λD␈εαin␈αλ(9)␈↓ 	"␈εα.␈αSince␈↓ 
⊃␈ελM␈↓ 
C␈εαmod␈↓ 
␈ελm
␈β⊃$␈↓ β-␈εj␈↓ λ/␈εj␈↓ 
0␈εj
␈β∪(

␈β↓Y␈↓ ↓H␈εα4.3.2␈ε∞␈↓ πlMODU␈α␈LAR␈α	ARIT␈α␈HMET␈α␈IC␈↓ 
v␈εα271
␈βα&␈↓ ↓H␈εαis␈α
uniquely␈α
determined␈α
if␈α
(7)␈α
is␈α
to␈α
be␈α
satis|ed␈α
(because␈α	of␈α
the␈α
Chinese␈α
Remainder
␈βαQ␈↓ ↓H␈εαTheorem),␈αw␈α␈e␈αcan␈αsee␈αthat,␈αin␈αan␈α␈y␈αev␈α␈en␈α␈t,␈αEq.␈α(9)␈αrequires␈αa␈αlot␈αof␈αhigh-precision
␈βα⎇␈↓ ↓H␈εαcalculation,␈α∂and␈α∂such␈α∂calculation␈α∂is␈α∂just␈α∞what␈α∂w␈α␈e␈α∂wished␈α∂to␈α∂av␈α␈oid␈α∂by␈α∞modular
␈ββ(␈↓ ↓H␈εαarithmetic␈αin␈αthe␈α|rst␈αplace.
␈ββS␈↓ α␈εαSo␈α∂w␈α␈e␈α∞need␈α∂an␈α∞ev␈α␈en␈ε∂␈α∂better␈εα␈α∞proof␈α∂of␈α∞Theorem␈α∂C␈α∞if␈α∂w␈α␈e␈α∞are␈α∂going␈α∞to␈α∂hav␈α␈e␈α∞a
␈ββ}␈↓ ↓H␈εαreally␈α∞usable␈α∞method␈α∞of␈α∞con␈α␈v␈α␈ersion␈α∞from␈α∂(␈↓ εe␈ελu␈↓ πλ␈εα,␈↓ π_␈εα.␈αε.␈αε.␈↓ πH␈εα,␈↓ πX␈ελu␈↓ πy␈εα)␈α∂to␈↓ λB␈ελu␈↓ λW␈εα.␈α∪Such␈α∞a␈α∞method␈α∞was
␈β∧
␈↓ 	0␈ε↓␈␈↓ 	M␈ε↓↓
␈β∧␈↓ εy␈ε¬1␈↓ πl␈εr
␈β∧!␈↓ 	?␈εr
␈β∧*␈↓ ↓H␈εαsuggested␈αby␈α
H.␈αL.␈α
Garner␈αin␈α
1958;␈αit␈α
can␈αbe␈α
carried␈αout␈α
using␈↓ 	g␈εαconstan␈α␈ts␈↓ π␈ελc
␈β∧7␈↓ ∀␈εi␈↓ ∨␈εj
␈β∧<␈↓ 	>␈ε¬2
␈β∧U␈↓ ↓H␈εαfor␈α1␈ε⊗␈α
∀␈↓ αJ␈ελi␈↓ αb␈εα<␈↓ β⊂␈ελj␈↓ β*␈ε⊗∀␈↓ βX␈ελr␈↓ βh␈εα,␈αwhere
␈β¬,␈↓ ∧l␈ελc␈↓ ¬_␈ελm␈↓ ¬L␈ε⊗⊃␈εα␈α
1␈α.(modulo␈↓ πF␈ελm␈↓ πr␈εα).␈↓ 
p␈εα(22)
␈β¬9␈↓ ∧y␈εi␈↓ ¬¬␈εj␈↓ ¬7␈εi␈↓ πe␈εj
␈βεβ␈↓ ↓H␈εαThese␈αεconstan␈α␈ts␈↓ βC␈ελc␈↓ βo␈εαare␈αεreadily␈αεcomputed␈αεusing␈αεEuclid's␈αεalgorithm,␈απsince␈αεAlgorithm
␈βε⊂␈↓ βP␈εi␈↓ β[␈εj
␈βε.␈↓ ↓H␈εα4.5.2X␈αdetermines␈↓ βl␈ελa␈↓ ∧	␈εαand␈↓ ∧N␈ελb␈↓ ∧h␈εαsuch␈αthat␈↓ εε␈ελa␈↓ ε_␈ελm␈↓ εI␈εα+␈↓ εt␈ελb␈↓ πα␈ελm␈↓ π8␈εα=␈↓ πf␈εαgcd␈↓ λ≤␈εα(␈↓ λ(␈ελm␈↓ λR␈εα,␈↓ λb␈ελm␈↓ 	∞␈εα)␈α
=␈α
1␈αand␈αw␈α␈e␈αmay
␈βε<␈↓ ε7␈εi␈↓ π!␈εj␈↓ λG␈εi␈↓ 	↓␈εj
␈βεT␈↓ λ3␈εe
␈βεY␈↓ ↓H␈εαtak␈α␈e␈↓ α↔␈ελc␈↓ αH␈εα=␈↓ αw␈ελa␈↓ β	␈εα.␈α∞When␈α
the␈αmoduli␈α
hav␈α␈e␈α
the␈αspecial␈α
form␈↓ λ!␈εα2␈↓ λR␈ε⊗␈␈εα␈αλ1,␈α
a␈α
simple␈αmethod
␈βε]␈↓ λ>␈ε
j
␈βεg␈↓ α$␈εi␈↓ α0␈εj
␈βπ¬␈↓ ↓H␈εαof␈αdetermining␈↓ β:␈ελc␈↓ βk␈εαis␈αgiv␈α␈en␈αin␈αex␈α␈ercise␈α6.
␈βπ∩␈↓ βG␈εi␈↓ βR␈εj
␈βπ0␈↓ α␈εαOnce␈αthe␈↓ β&␈ελc␈↓ βX␈εαhav␈α␈e␈αbeen␈αdetermined␈αsatisfying␈α(22),␈αw␈α␈e␈αcan␈αset
␈βπ=␈↓ β3␈εi␈↓ β?␈εj
␈βλβ␈↓ αY␈ελv␈↓ β↓␈ε⊗ ␈↓ β/␈ελu␈↓ βX␈εαmod␈↓ ∧"␈ελm␈↓ ∧O␈εα,
␈βλ⊂␈↓ αi␈ε¬1␈↓ βD␈ε¬1␈↓ ∧A␈ε¬1
␈βλ.␈↓ αY␈ελv␈↓ β↓␈ε⊗ ␈εα␈α
(␈↓ β;␈ελu␈↓ βf␈ε⊗␈␈↓ ∧∩␈ελv␈↓ ∧0␈εα)␈↓ ∧B␈ελc␈↓ ∧r␈εαmod␈↓ ¬<␈ελm␈↓ ¬i␈εα,
␈βλ:␈↓ β/␈ε↓␈␈↓ ¬L␈ε↓↓
␈βλ;␈↓ αi␈ε¬2␈↓ βP␈ε¬2␈↓ ∧"␈ε¬1␈↓ ∧O␈ε¬1␈α↓2␈↓ ¬[␈ε¬2
␈βλY␈↓ αY␈ελv␈↓ β↓␈ε⊗ ␈↓ β=␈εα(␈↓ βI␈ελu␈↓ βt␈ε⊗␈␈↓ ∧ ␈ελv␈↓ ∧>␈εα)␈↓ ∧P␈ελc␈↓ ¬α␈ε⊗␈␈↓ ¬.␈ελv␈↓ ¬`␈ελc␈↓ ε⊂␈εαmod␈↓ εZ␈ελm␈↓ ππ␈εα,
␈βλg␈↓ αi␈ε¬3␈↓ β↑␈ε¬3␈↓ ∧0␈ε¬1␈↓ ∧]␈ε¬1␈α↓3␈↓ ¬>␈ε¬2␈↓ ¬m␈ε¬2␈α↓3␈↓ εy␈ε¬3
␈βλj␈↓ 
p␈εα(23)
␈β	β␈↓ αm␈εα.
␈β	⊃␈↓ αm␈εα.
␈β	∨␈↓ αm␈εα.
␈β	+␈↓ β/␈ε↓␈␈↓ λ≠␈ε↓↓
␈β	K␈↓ αZ␈ελv␈↓ β↓␈ε⊗ ␈↓ β=␈εα.␈αε.␈αε.␈↓ βm␈εα((␈↓ ∧¬␈ελu␈↓ ∧/␈ε⊗␈␈↓ ∧[␈ελv␈↓ ∧y␈εα)␈↓ ¬␈ελc␈↓ ¬<␈ε⊗␈␈↓ ¬h␈ελv␈↓ εε␈εα)␈↓ ε_␈ελc␈↓ εI␈ε⊗␈␈↓ εu␈ε⊗↓␈αε↓␈αε↓␈↓ π'␈ε⊗␈␈↓ πS␈ελv␈↓ λ/␈ελc␈↓ 	≠␈εαmod␈↓ 	e␈ελm␈↓ 
⊃␈εα.
␈β	X␈↓ αj␈εr␈↓ ∧~␈εr␈↓ ∧k␈ε¬1␈↓ ¬_␈ε¬1␈↓ ¬'␈εr␈↓ ¬x␈ε¬2␈↓ ε%␈ε¬2␈↓ ε4␈εr␈↓ πc␈εr␈↓ πp␈ε→␈␈ε¬1␈↓ 
∧␈εr
␈β	Y␈↓ λ<␈ε¬(␈↓ λF␈εr␈↓ λS␈ε→␈␈ε¬1)␈↓ 	λ␈εr
␈β
 ␈↓ ↓H␈εαThen
␈β
L␈↓ β#␈ελu␈↓ βC␈εα=␈↓ βq␈ελv␈↓ ∧∞␈ελm␈↓ ∧k␈εα.␈αε.␈αε.␈↓ ¬≠␈ελm␈↓ ¬H␈ελm␈↓ ¬⎇␈εα+␈↓ ε)␈ε⊗↓␈αε↓␈αε↓␈↓ ε[␈εα+␈↓ ππ␈ελv␈↓ π%␈ελm␈↓ πR␈ελm␈↓ λπ␈εα+␈↓ λ3␈ελv␈↓ λR␈ελm␈↓ 	ε␈εα+␈↓ 	2␈ελv␈↓ 
p␈εα(24)
␈β
Y␈↓ ∧↓␈εr␈↓ ∧-␈εr␈↓ ∧:␈ε→␈␈ε¬1␈↓ ¬:␈ε¬2␈↓ ¬g␈ε¬1␈↓ π↔␈ε¬3␈↓ πD␈ε¬2␈↓ πq␈ε¬1␈↓ λC␈ε¬2␈↓ λp␈ε¬1␈↓ 	B␈ε¬1
␈β⊃␈↓ ↓H␈εαis␈αa␈αn␈α␈um␈α␈ber␈αsatisfying␈αthe␈αconditions
␈βh␈↓ β~␈εα0␈ε⊗␈α
∀␈↓ βd␈ελu␈↓ ∧β␈εα<␈↓ ∧1␈ελm␈↓ ∧Q␈εα,␈↓ ¬)␈ελu␈↓ ¬I␈ε⊗⊃␈↓ ¬w␈ελu␈↓ ε"␈εα(modulo␈↓ π.␈ελm␈↓ πZ␈εα)␈↓ λ.1␈ε⊗␈α
∀␈↓ λx␈ελj␈↓ 	∪␈ε⊗∀␈↓ 	A␈ελr␈↓ 	P␈εα.␈↓ 
p␈εα(25)
␈βu␈↓ ε␈εj␈↓ πM␈εj
␈β?␈↓ ↓H␈εα(See␈α∂ex␈α␈ercise␈α⊂8;␈α∩another␈α⊂way␈α⊂of␈α⊂rewriting␈α∂(23)␈α⊂that␈α⊂does␈α⊂not␈α⊂in␈α␈v␈α␈olv␈α␈e␈α⊂as␈α∂man␈α␈y
␈βj␈↓ ↓H␈εαauxiliary␈αconstan␈α␈ts␈α
is␈αgiv␈α␈en␈αin␈αex␈α␈ercise␈α7.)␈α↔Equation␈α(24)␈αis␈αa␈ε∂␈αmix␈α␈ed-radix␈α
repre-
␈β
∃␈↓ ↓H␈ε∂sen␈α␈tation␈εα␈αof␈↓ β␈ελu␈↓ β!␈εα,␈αwhich␈αmay␈αbe␈αcon␈α␈v␈α␈erted␈αto␈αbinary␈αor␈αdecimal␈αnotation␈αusing␈αthe
␈β
@␈↓ ↓H␈εαmethods␈αof␈α
Section␈α
4.4.␈α∂If␈α0␈ε⊗␈α∀␈↓ ¬:␈ελu␈↓ ¬[␈εα<␈↓ ε␈ελm␈↓ ε7␈εαis␈α
not␈α
the␈α
desired␈α
range,␈α
an␈αappropriate
␈β
l␈↓ ↓H␈εαm␈α␈ultiple␈αof␈↓ α␈␈ελm␈↓ β*␈εαcan␈αbe␈αadded␈αor␈αsubtracted␈αafter␈αthe␈αcon␈α␈v␈α␈ersion␈αprocess.
␈β∞↔␈↓ α␈εαThe␈α
advan␈α␈tage␈α
of␈α
the␈α
computation␈α
sho␈α␈wn␈α
in␈α
(23)␈α
is␈α
that␈α
the␈α
calculation␈α
of
␈β∞B␈↓ ↓H␈ελv␈↓ ↓t␈εαcan␈α∞be␈α∂done␈α∂using␈α∂only␈α∂arithmetic␈α∂mod␈↓ ε|␈ελm␈↓ π'␈εα,␈α⊂which␈α∂is␈α∂already␈α∂built␈α∂in␈α␈to␈α∞the
␈β∞P␈↓ ↓W␈εj␈↓ π~␈εj
␈β∞m␈↓ ↓H␈εαmodular␈α
arithmetic␈α
algorithms.␈α⊂Furthermore,␈α∞(23)␈α
allo␈α␈ws␈α
parallel␈α
computation:
␈β∂→␈↓ ↓H␈εαWe␈α
can␈αstart␈α
with␈α
(␈↓ ∧↓␈ελv␈↓ ∧∨␈εα,␈↓ ∧/␈εα.␈αε.␈αε.␈↓ ∧←␈εα,␈↓ ∧o␈ελv␈↓ ¬
␈εα)␈ε⊗␈α ␈εα␈α(␈↓ ¬`␈ελu␈↓ ε	␈εαmod␈↓ εS␈ελm␈↓ π␈εα,␈↓ π⊂␈εα.␈αε.␈αε.␈↓ π@␈εα,␈↓ πP␈ελu␈↓ πw␈εαmod␈↓ λA␈ελm␈↓ λm␈εα),␈α
then␈α
at␈α
time␈↓ 
c␈ελj␈↓ ␈εαfor
␈β∂&␈↓ ∧⊃␈ε¬1␈↓ ∧␈␈εr␈↓ ¬t␈ε¬1␈↓ εq␈ε¬1␈↓ πd␈εr␈↓ λ`␈εr
␈β∂D␈↓ ↓H␈εα1␈ε⊗␈α⊂∀␈↓ α≡␈ελj␈↓ α?␈εα<␈↓ αs␈ελr␈↓ β∪␈εαw␈α␈e␈α⊂sim␈α␈ultaneously␈α⊂set␈↓ ε␈ελv␈↓ ε/␈ε⊗ ␈εα␈α⊂(␈↓ εo␈ελv␈↓ π_␈ε⊗␈␈↓ πG␈ελv␈↓ πd␈εα)␈↓ πv␈ελc␈↓ λ$␈εαmod␈↓ λn␈ελm␈↓ 	+␈εαfor␈↓ 	g␈ελj␈↓ 
λ␈εα<␈↓ 
<␈ελk␈↓ 
↑␈ε⊗∀␈↓ ∪␈ελr␈↓ "␈εα.
␈β∂Q␈↓ ε⊂␈εk␈↓ ε␈␈εk␈↓ πV␈εj␈↓ λβ␈εj␈↓ λ⊂␈εk␈↓ 	
␈εk
␈β∂o␈↓ ↓H␈εαAn␈αalternativ␈α␈e␈αway␈αto␈αcompute␈αthe␈αmix␈α␈ed-radix␈αrepresen␈α␈tation,␈αallo␈α␈wing␈αsimilar
␈β⊂~␈↓ ↓H␈εαpossibilities␈α∞for␈α∂parallelism,␈α∂has␈α∂been␈α∂discussed␈α∞by␈α∂A.␈α∂S.␈α∞Fraenk␈α␈el,␈ε∂␈α⊂Proc.␈α∞A␈α␈CM
␈β⊂E␈↓ ↓H␈ε∂Nat.␈αConf.␈ε∩␈α19␈εα␈α(Philadelphia,␈α1965),␈αE1.4.
␈β⊂q␈↓ α␈εαIt␈απis␈απimportan␈α␈t␈απto␈απobserv␈α␈e␈απthat␈απthe␈απmix␈α␈ed-radix␈απrepresen␈α␈tation␈απ(24)␈απis␈απsu}cien␈α␈t
␈β⊃≤␈↓ ↓H␈εαto␈αcompare␈α
the␈α
magnitudes␈α
of␈αt␈α␈w␈α␈o␈α
modular␈α
n␈α␈um␈α␈bers.␈α∞For␈α
if␈α
w␈α␈e␈α
kno␈α␈w␈αthat␈α
0␈ε⊗␈α∀
␈β∪(

␈β↓Y␈↓ ↓H␈εα272␈↓ α=␈ε∞A␈α␈RITH␈α␈METIC␈εα␈↓ 
b4.3.2
␈βα#␈↓ β↑␈ε→0␈↓ πF␈ε→0
␈βα(␈↓ ↓H␈ελu␈↓ ↓g␈εα<␈↓ α∃␈ελm␈↓ α=␈εαand␈απ0␈ε⊗␈α
∀␈↓ βH␈ελu␈↓ βo␈εα<␈↓ ∧≥␈ελm␈↓ ∧=␈εα,␈αλthen␈αλw␈α␈e␈απcan␈αλtell␈αλif␈↓ εb␈ελu␈↓ πα␈εα<␈↓ π0␈ελu␈↓ πT␈εαby␈αλ|rst␈αλdoing␈απthe␈αλcon␈α␈v␈α␈ersion␈απto
␈βαN␈↓ βU␈ε→0␈↓ ∧F␈ε→0␈↓ π7␈ε→0␈↓ 	∧␈ε→0␈↓ 
m␈ε→0
␈βαS␈↓ ↓H␈εα(␈↓ ↓T␈ελv␈↓ ↓r␈εα,␈↓ αα␈εα.␈αε.␈αε.␈↓ α2␈εα,␈↓ αB␈ελv␈↓ α←␈εα)␈α	and␈αλ(␈↓ βB␈ελv␈↓ βc␈εα,␈↓ βs␈εα.␈αε.␈αε.␈↓ ∧#␈εα,␈↓ ∧3␈ελv␈↓ ∧P␈εα),␈α
then␈αλtesting␈α	if␈↓ εP␈ελv␈↓ εw␈εα<␈↓ π%␈ελv␈↓ πB␈εα,␈α	or␈α	if␈↓ λ≤␈ελv␈↓ λC␈εα=␈↓ λq␈ελv␈↓ 	↔␈εαand␈↓ 	Z␈ελv␈↓ 
,␈εα<␈↓ 
Z␈ελv␈↓ "␈εα,
␈βαa␈↓ ↓c␈ε¬1␈↓ αR␈εr
␈βαe␈↓ βU␈ε¬1␈↓ ∧C␈εr␈↓ ε←␈εr␈↓ π4␈εr␈↓ λ,␈εr␈↓ 	↓␈εr␈↓ 	j␈εr␈↓ 	w␈ε→␈␈ε¬1␈↓ 
j␈εr␈↓ 
w␈ε→␈␈ε¬1
␈βα}␈↓ ↓H␈εαetc.␈α⊂It␈α∞is␈α∞not␈α
necessary␈α∞to␈α
con␈α␈v␈α␈ert␈α∞all␈α
the␈α∞way␈α∞to␈α
binary␈α∞or␈α
decimal␈α∞notation␈α
if
␈ββ%␈↓ λO␈ε→0␈↓ 	C␈ε→0
␈ββ*␈↓ ↓H␈εαw␈α␈e␈αonly␈αwan␈α␈t␈αto␈αkno␈α␈w␈αwhether␈α(␈↓ ¬G␈ελu␈↓ ¬j␈εα,␈↓ ¬z␈εα.␈αε.␈αε.␈↓ ε*␈εα,␈↓ ε:␈ελu␈↓ ε\␈εα)␈αis␈αless␈αthan␈α(␈↓ λ:␈ελu␈↓ λ↑␈εα,␈↓ λn␈εα.␈αε.␈αε.␈↓ 	≡␈εα,␈↓ 	.␈ελu␈↓ 	Q␈εα).
␈ββ7␈↓ ¬[␈ε¬1␈↓ εN␈εr
␈ββ<␈↓ λO␈ε¬1␈↓ 	C␈εr
␈ββU␈↓ α␈εαThe␈α	operation␈αλof␈αλcomparing␈α	t␈α␈w␈α␈o␈αλn␈α␈um␈α␈bers,␈α
or␈αλof␈α	deciding␈αλif␈αλa␈α	modular␈αλn␈α␈um␈α␈ber
␈β∧␈↓ ↓H␈εαis␈αnegativ␈α␈e,␈αis␈αin␈α␈tuitiv␈α␈ely␈αv␈α␈ery␈αsimple,␈αso␈αw␈α␈e␈αw␈α␈ould␈αexpect␈αto␈αhav␈α␈e␈αa␈αm␈α␈uch␈αeasier
␈β∧+␈↓ ↓H␈εαmethod␈α
for␈α
making␈α
this␈α
test␈α
than␈α
the␈α∞con␈α␈v␈α␈ersion␈α
to␈α
mix␈α␈ed-radix␈α
form.␈α∂But␈α
the
␈β∧V␈↓ ↓H␈εαfollo␈α␈wing␈α
theorem␈α
sho␈α␈ws␈αthat␈α
there␈α
is␈αlittle␈α
hope␈α
of␈α
|nding␈αa␈α
substan␈α␈tially␈α
better
␈β¬α␈↓ ↓H␈εαmethod,␈α
since␈αthe␈α
range␈α
of␈α
a␈αmodular␈α
n␈α␈um␈α␈ber␈α
depends␈αessen␈α␈tially␈α
on␈α
all␈α
bits␈αof
␈β¬-␈↓ ↓H␈εαall␈αthe␈αresidues␈α(␈↓ βL␈ελu␈↓ βo␈εα,␈↓ β␈␈εα.␈αε.␈αε.␈↓ ∧/␈εα,␈↓ ∧?␈ελu␈↓ ∧a␈εα):
␈β¬:␈↓ β`␈ε¬1␈↓ ∧S␈εr
␈β¬j␈↓ ↓H␈ε∩Theorem␈α
S␈εα␈α(Nicholas␈αSzab␈↓ ∧d␈εα∞␈↓ ∧d␈εαo␈↓ ∧v␈εα,␈α1961)␈ε∩.␈ε∂␈α⊗In␈αterms␈α
of␈αthe␈αnotation␈αabo␈α␈v␈α␈e,␈αassume␈α
that
␈βε∪␈↓ αQ␈∧ε∪αQα 
␈βε∀␈↓ α-␈ε⊗p
␈βε∃␈↓ ↓H␈ελm␈↓ ↓␈␈εα<␈↓ αQ␈ελm␈↓ αp␈ε∂,␈αand␈αlet␈↓ ∧␈ελL␈↓ ∧$␈ε∂be␈αan␈α␈y␈αvalue␈αin␈αthe␈αrange
␈βε"␈↓ ↓f␈ε¬1
␈βεb␈↓ ¬~␈ελm␈↓ ¬Q␈ε⊗∀␈↓ ¬␈␈ελL␈↓ ε!␈ε⊗∀␈↓ εO␈ελm␈↓ εw␈ε⊗␈␈↓ π#␈ελm␈↓ πP␈εα.␈↓ 
p␈εα(26)
␈βεo␈↓ ¬9␈ε¬1␈↓ πA␈ε¬1
␈βπ/␈↓ ↓H␈ε∂Let␈↓ αλ␈ελg␈↓ α$␈ε∂be␈α
an␈α␈y␈α
function␈αsuch␈α
that␈αthe␈α
set␈ε⊗␈αf␈↓ εD␈ελg␈↓ εU␈εα(0),␈↓ π∂␈ελg␈↓ π ␈εα(1),␈↓ πZ␈εα.␈αε.␈αε.␈↓ λ
␈εα,␈↓ λ~␈ελg␈↓ λ+␈εα(␈↓ λ7␈ελm␈↓ λj␈ε⊗␈␈εα␈αε1)␈ε⊗g␈ε∂␈α
con␈α␈tains␈α
few␈α␈er
␈βπ=␈↓ λU␈ε¬1
␈βπZ␈↓ ↓H␈ε∂than␈↓ α≤␈ελm␈↓ αU␈ε∂values.␈αThen␈αthere␈αare␈αn␈α␈um␈α␈bers␈↓ εS␈ελu␈↓ εt␈ε∂and␈↓ π:␈ελv␈↓ πY␈ε∂such␈αthat
␈βπh␈↓ α:␈ε¬1
␈βλ!␈↓ ↓v␈ελg␈↓ απ␈εα(␈↓ α∪␈ελu␈↓ α.␈εαmod␈↓ αx␈ελm␈↓ β%␈εα)␈α
=␈↓ βi␈ελg␈↓ βz␈εα(␈↓ ∧ε␈ελv␈↓ ∧∨␈εαmod␈↓ ∧i␈ελm␈↓ ¬⊗␈εα),␈↓ ¬z␈ελu␈↓ ε⊗␈εαmod␈↓ ε`␈ελm␈↓ π⊗␈εα=␈↓ πD␈ελv␈↓ π\␈εαmod␈↓ λ&␈ελm␈↓ λ↑␈εαfor␈↓ 	⊗␈εα2␈ε⊗␈α
∀␈↓ 	`␈ελj␈↓ 	{␈ε⊗∀␈↓ 
)␈ελr␈↓ 
8␈εα;␈↓ 
p␈εα(27)
␈βλ.␈↓ β↔␈ε¬1␈↓ ¬λ␈ε¬1␈↓ ε}␈εj␈↓ λE␈εj
␈βλS␈↓ ∧n␈εα0␈ε⊗␈α
∀␈↓ ¬8␈ελu␈↓ ¬X␈εα<␈↓ εε␈ελL␈↓ ε(␈ε⊗∀␈↓ εV␈ελv␈↓ εr␈εα<␈↓ π ␈ελm␈↓ π@␈εα.␈↓ 
p␈εα(28)
␈β	 ␈↓ ↓H␈ε∂Proof.␈εα␈α∨By␈α⊂h␈α␈ypothesis,␈α⊂there␈α∂m␈α␈ust␈α⊂exist␈α∂n␈α␈um␈α␈bers␈↓ πi␈ελu␈↓ λ∞␈ε⊗≤␈↓ λB␈ελv␈↓ λe␈εαsatisfying␈α∂(27),␈α⊂since
␈β	K␈↓ ↓H␈ελg␈↓ ↓g␈εαm␈α␈ust␈α∂tak␈α␈e␈α∂on␈α∂the␈α∞same␈α∂value␈α∂for␈α∂t␈α␈w␈α␈o␈α∞di{eren␈α␈t␈α∂residues.␈α∀Let␈α∂(␈↓ 	H␈ελu␈↓ 	]␈εα,␈↓ 	m␈ελv␈↓ 
␈εα)␈α∂be␈α∂a␈α∞pair
␈β	w␈↓ ↓H␈εαof␈α⊂values␈α⊂with␈α⊂0␈ε⊗␈α⊃∀␈↓ ∧∃␈ελu␈↓ ∧<␈εα<␈↓ ∧p␈ελv␈↓ ¬∀␈εα<␈↓ ¬I␈ελm␈↓ ¬x␈εαsatisfying␈α⊂(27),␈α∩for␈α⊂which␈↓ 	≡␈ελu␈↓ 	C␈εαis␈α⊂a␈α⊂minim␈α␈um.
␈β
≥␈↓ α<␈ε→0␈↓ ∧Z␈ε→0␈↓ 
%␈ε→0
␈β
"␈↓ ↓H␈εαSince␈↓ α&␈ελu␈↓ αN␈εα=␈↓ α⎇␈ελu␈↓ β≠␈ε⊗␈␈↓ βG␈ελm␈↓ ∧↓␈εαand␈↓ ∧H␈ελv␈↓ ∧l␈εα=␈↓ ¬≠␈ελv␈↓ ¬7␈ε⊗␈␈↓ ¬c␈ελm␈↓ ε≥␈εαalso␈αsatisfy␈α
(27),␈αw␈α␈e␈α
m␈α␈ust␈α
hav␈α␈e␈↓ 
∂␈ελu␈↓ 
7␈εα<␈α0␈αby
␈β
/␈↓ βf␈ε¬1␈↓ εα␈ε¬1
␈β
M␈↓ ↓H␈εαthe␈α∞minimality␈α∞of␈↓ βn␈ελu␈↓ ∧∧␈εα.␈α∪Hence␈↓ ¬
␈ελu␈↓ ¬0␈εα<␈↓ ¬b␈ελm␈↓ ε≥␈ε⊗∀␈↓ εO␈ελL␈↓ εg␈εα;␈α∂and␈α∞if␈α∂(28)␈α∞does␈α∞not␈α∞hold,␈α∂w␈α␈e␈α∞m␈α␈ust
␈β
Z␈↓ ε↓␈ε¬1
␈β
x␈↓ ↓H␈εαhav␈α␈e␈↓ α ␈ελv␈↓ αC␈εα<␈↓ αw␈ελL␈↓ β∂␈εα.␈α⊗But␈↓ βy␈ελv␈↓ ∧≠␈εα>␈↓ ∧O␈ελu␈↓ ∧e␈εα,␈α⊂and␈↓ ¬I␈ελv␈↓ ¬f␈ε⊗␈␈↓ ε∀␈ελu␈↓ ε:␈εαis␈α∂a␈α⊂m␈α␈ultiple␈α∂of␈↓ λA␈ελm␈↓ λt␈εα.␈αε.␈αε.␈↓ 	$␈ελm␈↓ 	`␈εα=␈↓ 
∪␈ελm␈↓ 
3␈εα/␈↓ 
E␈ελm␈↓ 
r␈εα,␈α⊂so
␈βε␈↓ λ←␈ε¬2␈↓ 	B␈εr␈↓ 
d␈ε¬1
␈β#␈↓ ↓H␈ελv␈↓ ↓e␈ε⊗∃␈↓ α∀␈ελv␈↓ α/␈ε⊗␈␈↓ α[␈ελu␈↓ α{␈ε⊗∃␈↓ β*␈ελm␈↓ βJ␈εα/␈↓ β\␈ελm␈↓ ∧∪␈εα>␈↓ ∧B␈ελm␈↓ ∧o␈εα.␈α
Therefore,␈αif␈α
(28)␈αdoes␈α
not␈αhold␈αfor␈α
(␈↓ 	E␈ελu␈↓ 	Z␈εα,␈↓ 	j␈ελv␈↓ 	⎇␈εα),␈α
it␈αwill␈αbe
␈β1␈↓ βz␈ε¬1␈↓ ∧`␈ε¬1
␈βI␈↓ ∧3␈ε→0␈α↓0␈↓ ∧d␈ε→0␈α↓0
␈βO␈↓ ↓H␈εαsatis|ed␈αfor␈αthe␈αpair␈α(␈↓ ∧≡␈ελu␈↓ ∧B␈εα,␈↓ ∧R␈ελv␈↓ ∧s␈εα)␈α
=␈α
(␈↓ ¬C␈ελv␈↓ ¬↑␈ε⊗␈␈↓ ε
␈ελm␈↓ ε7␈εα,␈↓ εG␈ελu␈↓ εd␈εα+␈↓ π⊂␈ελm␈↓ π8␈ε⊗␈␈↓ πd␈ελm␈↓ λ⊃␈εα).
␈βT␈↓ λO␈∧TλO≠∂
␈β\␈↓ ε(␈ε¬1␈↓ λβ␈ε¬1
␈β␈↓ α␈εαOf␈αcourse,␈αa␈αsimilar␈αresult␈αcan␈αbe␈αpro␈α␈v␈α␈ed␈αfor␈αan␈α␈y␈↓ λ∀␈ελm␈↓ λK␈εαin␈αplace␈αof␈↓ 	{␈ελm␈↓ 
(␈εα;␈αand␈αw␈α␈e
␈β→␈↓ λ2␈εj␈↓ 
→␈ε¬1
␈β6␈↓ ↓H␈εαcould␈α
also␈α
replace␈α
(28)␈αby␈α
the␈α
condition␈α
\␈↓ εZ␈ελa␈↓ εx␈ε⊗∀␈↓ π'␈ελu␈↓ πI␈εα<␈↓ πx␈ελa␈↓ λ∪␈εα+␈↓ λ?␈ελL␈↓ λc␈ε⊗∀␈↓ 	∪␈ελv␈↓ 	1␈εα<␈↓ 	a␈ελa␈↓ 	{␈εα+␈↓ 
(␈ελm␈↓ 
G␈εα"␈α
with
␈βb␈↓ ↓H␈εαonly␈αminor␈αchanges␈αin␈αthe␈αproof.␈αTherefore␈αTheorem␈αS␈αsho␈α␈ws␈αthat␈αman␈α␈y␈αsimple
␈β

␈↓ ↓H␈εαfunctions␈αcannot␈αbe␈αused␈αto␈αdetermine␈αthe␈αrange␈αof␈αa␈αmodular␈αn␈α␈um␈α␈ber.
␈β
A␈↓ α␈εαLet␈αλus␈αλno␈α␈w␈αλreiterate␈αλthe␈απmain␈αλpoin␈α␈ts␈αλof␈αλthe␈αλdiscussion␈αλin␈αλthis␈αλsection:␈α	Modular
␈β
l␈↓ ↓H␈εαarithmetic␈αcan␈αbe␈αa␈αsigni|can␈α␈t␈αadvan␈α␈tage␈αfor␈αapplications␈αin␈αwhich␈αthe␈αpredom-
␈β∞↔␈↓ ↓H␈εαinan␈α␈t␈α∂calculations␈α∂in␈α␈v␈α␈olv␈α␈e␈α∂exact␈α∂m␈α␈ultiplication␈α∂(or␈α∂raising␈α∂to␈α∂a␈α∂po␈α␈w␈α␈er)␈α∂of␈α∂large
␈β∞B␈↓ ↓H␈εαin␈α␈tegers,␈αcom␈α␈bined␈αwith␈αaddition␈αand␈αsubtraction,␈α
but␈αwhere␈αthere␈αis␈αv␈α␈ery␈αlittle
␈β∞n␈↓ ↓H␈εαneed␈α∩to␈α∩divide␈α∩or␈α∩compare␈α∩n␈α␈um␈α␈bers,␈ε∂␈α∪or␈α∩to␈α∩test␈α∩whether␈α∩in␈α␈termediate␈α∩results
␈β∂→␈↓ ↓H␈ε∂\o␈α␈v␈α␈er⎇o␈α␈w"␈α⊂out␈α⊃of␈α⊃range.␈εα␈α→(It␈α⊃is␈α⊃importan␈α␈t␈α⊂not␈α⊃to␈α⊃forget␈α⊂the␈α⊃latter␈α⊂restriction;
␈β∂D␈↓ ↓H␈εαmethods␈απare␈αλavailable␈αλto␈απtest␈αλfor␈αλo␈α␈v␈α␈er⎇o␈α␈w,␈αλas␈αλin␈αλex␈α␈ercise␈απ12,␈α	but␈απthey␈αλare␈αλin␈απgeneral
␈β∂o␈↓ ↓H␈εαso␈αcomplicated␈αthat␈αthey␈αn␈α␈ullify␈αthe␈αadvan␈α␈tages␈αof␈αmodular␈αarithmetic.)␈αSev␈α␈eral
␈β⊂~␈↓ ↓H␈εαapplications␈αof␈α
modular␈αcomputations␈α
hav␈α␈e␈α
been␈αdiscussed␈α
by␈αH.␈α
Takahasi␈αand
␈β⊂F␈↓ ↓H␈εαY.␈αIshibashi,␈ε∂␈αInformation␈αProc.␈αin␈αJapan␈ε∩␈α1␈εα␈α(1961),␈α28↑42.
␈β⊂q␈↓ α␈εαAn␈αexample␈α
of␈αsuch␈α
an␈αapplication␈αis␈α
the␈αexact␈αsolution␈α
of␈αlinear␈αequations
␈β⊃≤␈↓ ↓H␈εαwith␈αλrational␈α	coe}cien␈α␈ts.␈αFor␈α	various␈α	reasons␈αλit␈α	is␈α	desirable␈αλin␈α	this␈α	case␈α	to␈αλassume
␈β∪(

␈β↓Y␈↓ ↓H␈εα4.3.2␈ε∞␈↓ πlMODU␈α␈LAR␈α	ARIT␈α␈HMET␈α␈IC␈↓ 
v␈εα273
␈βα(␈↓ ↓H␈εαthat␈α	the␈α
moduli␈↓ βE␈ελm␈↓ βq␈εα,␈↓ ∧ε␈ελm␈↓ ∧3␈εα,␈↓ ∧G␈εα.␈αε.␈αε.␈↓ ∧w␈εα,␈↓ ¬␈ελm␈↓ ¬@␈εαare␈α
all␈α
large␈α	prime␈α
n␈α␈um␈α␈bers;␈α
the␈α
linear␈α	equations
␈βα5␈↓ βc␈ε¬1␈↓ ∧$␈ε¬2␈↓ ¬)␈εr
␈βαS␈↓ ↓H␈εαcan␈α	be␈α
solv␈α␈ed␈α	independen␈α␈tly␈α	modulo␈α
each␈↓ εR␈ελm␈↓ ε}␈εα.␈αA␈α
detailed␈α	discussion␈α
of␈α	this␈α	proce-
␈βαa␈↓ εq␈εj
␈βα}␈↓ ↓H␈εαdure␈αλhas␈αλbeen␈αλgiv␈α␈en␈αλby␈αλI.␈αλBorosh␈αλand␈αλA.␈αλS.␈αλFraenk␈α␈el␈αλ[␈ε∂Math.␈αλComp.␈ε∩␈αλ20␈εα␈αλ(1966),␈αλ107↑
␈ββ*␈↓ ↓H␈εα112].␈α
By␈α	means␈αλof␈αλtheir␈α	method,␈α	the␈αλnine␈αλindependen␈α␈t␈α	solutions␈αλof␈αλa␈α	system␈αλof␈αλ111
␈ββU␈↓ ↓H␈εαlinear␈αequations␈αin␈α
120␈αunkno␈α␈wns␈α
w␈α␈ere␈αobtained␈αexactly␈α
in␈αless␈α
than␈αone␈αhour's
␈β∧␈↓ ↓H␈εαrunning␈α
time␈αon␈αa␈α
CDC␈α1604␈αcomputer.␈αThe␈αsame␈αprocedure␈α
is␈αw␈α␈orth␈αwhile␈α
also
␈β∧+␈↓ ↓H␈εαfor␈α∞solving␈α∂sim␈α␈ultaneous␈α∂linear␈α∞equations␈α∂with␈α∞⎇oating-poin␈α␈t␈α∂coe}cien␈α␈ts,␈α∂when
␈β∧V␈↓ ↓H␈εαthe␈αmatrix␈αof␈αcoe}cien␈α␈ts␈αis␈αill-conditioned.␈αThe␈αmodular␈αtechnique␈α(treating␈αthe
␈β¬α␈↓ ↓H␈εαgiv␈α␈en␈α∂⎇oating-poin␈α␈t␈α∂coe}cien␈α␈ts␈α∂as␈α∂exact␈α∂rational␈α∂n␈α␈um␈α␈bers)␈α∂giv␈α␈es␈α∂a␈α∂method␈α∂for
␈β¬-␈↓ ↓H␈εαobtaining␈αthe␈ε∂␈α
true␈εα␈αansw␈α␈ers␈αin␈α
less␈αtime␈α
than␈αcon␈α␈v␈α␈en␈α␈tional␈α
methods␈αcan␈αproduce
␈β¬X␈↓ ↓H␈εαreliable␈ε∂␈αappro␈α␈ximate␈εα␈αansw␈α␈ers!␈α[See␈αM.␈αT.␈αMcClellan,␈ε∂␈αJA␈α␈CM␈ε∩␈α20␈εα␈α(1973),␈α563↑588,
␈βεβ␈↓ ↓H␈εαfor␈α∞further␈α∂dev␈α␈elopmen␈α␈ts␈α∂of␈α∞this␈α∂approach;␈α⊂and␈α∂see␈α∞also␈α∂E.␈α∂H.␈α∞Bareiss,␈ε∂␈α⊂J.␈α∞Inst.
␈βε.␈↓ ↓H␈ε∂Math.␈αand␈αAppl.␈ε∩␈α10␈εα␈α(1972),␈α68↑104,␈αfor␈αa␈αdiscussion␈αof␈αits␈αlimitations.]
␈βεZ␈↓ α␈εαThe␈α∞published␈α
literature␈α∞concerning␈α∞modular␈α
arithmetic␈α∞is␈α∞mostly␈α
orien␈α␈ted
␈βπε␈↓ ↓H␈εαto␈α␈wards␈α
hardware␈α
design,␈α∞since␈α
the␈α
carry-free␈α∞properties␈α
of␈α
modular␈α
arithmetic
␈βπ1␈↓ ↓H␈εαmak␈α␈e␈αλit␈αλattractiv␈α␈e␈αλfrom␈α	the␈αλstandpoin␈α␈t␈αλof␈α	high-speed␈αλoperation.␈αThe␈αλidea␈αλwas␈αλ|rst
␈βπ\␈↓ ↓H␈εαpublished␈αby␈α
A.␈αSv␈α␈oboda␈α
and␈α
M.␈αValach␈α
in␈α
the␈αCzechoslo␈α␈vakian␈α
journal␈ε∂␈αStroje
␈βλπ␈↓ ↓H␈ε∂na␈α
Zpraco␈α␈v␈↓ αw␈ε∂∞␈↓ αw␈ε∂a␈↓ β	␈ε∂n␈↓ β→␈ε∂∞␈↓ β≥␈ε∂␈↓ β2␈ε∂Informac␈↓ ∧:␈ε∂∞␈↓ ∧>␈ε∂␈↓ ∧S␈ε∩3␈εα␈α(1955),␈α247↑295;␈αthen␈α
independen␈α␈tly␈αby␈αH.␈αL.␈α
Garner
␈βλ-␈↓ 
λ␈εe
␈βλ2␈↓ ↓H␈εα[␈ε∂IRE␈αTrans.␈ε∩␈α
EC↑8␈εα␈α(1959),␈α
140↑147].␈α∞The␈αuse␈α
of␈αmoduli␈α
of␈αthe␈α
form␈↓ 	v␈εα2␈↓ 
(␈ε⊗␈␈εα␈αλ1␈αwas
␈βλ6␈↓ 
∀␈ε
j
␈βλ↑␈↓ ↓H␈εαsuggested␈αby␈αA.␈αS.␈αFraenk␈α␈el␈α[␈ε∂JA␈α␈CM␈ε∩␈α8␈εα␈α(1961),␈α87↑96],␈αand␈αsev␈α␈eral␈αadvan␈α␈tages␈αof
␈β		␈↓ ↓H␈εαsuch␈α	moduli␈αλw␈α␈ere␈α	demonstrated␈α	by␈α	A.␈α	Sch␈↓ εP␈εα∪␈↓ εP␈εαo␈↓ εb␈εαnhage␈α	[␈ε∂Computing␈ε∩␈α	1␈εα␈α	(1966),␈α	182↑196].
␈β	4␈↓ ↓H␈εαSee␈αthe␈αbook␈ε∂␈αResidue␈αArithmetic␈αand␈αits␈αApplications␈αto␈αComputer␈αTechnology
␈β	←␈↓ ↓H␈εαby␈α
N.␈αS.␈α
Szab␈↓ β≥␈εα∞␈↓ β≥␈εαo␈↓ β:␈εαand␈α
R.␈αI.␈α
Tanaka␈α(New␈α
York:␈αMcGraw-Hill,␈α1967),␈αfor␈α
additional
␈β

␈↓ ↓H␈εαinformation␈αand␈αa␈αcomprehensiv␈α␈e␈αbibliograph␈α␈y␈αof␈αthe␈αsubject.
␈β
7␈↓ α␈εαFurther␈αdiscussion␈αof␈αmodular␈αarithmetic␈αcan␈αbe␈αfound␈αin␈αSection␈α4.3.3B.
␈βB␈↓ ↓H␈ε≥E␈α␈XERCI␈α↓SE␈α␈S
␈β_␈↓ ↓g␈ε∪1.␈↓ α␈εβ[␈ε	20␈↓ α;␈εβ]␈α⊗Fi␈α↓n␈α␈d␈αall␈αin␈α␈teg␈α␈ers␈↓ ∧U␈ε	u␈↓ ∧t␈εβtha␈α␈t␈αsa␈α␈ti␈α↓sfy␈αa␈α␈l␈α↓l␈αo␈α␈f␈αth␈α␈e␈αfollo␈α␈wing␈αco␈α␈nd␈α␈i␈α↓tio␈α␈ns:␈↓ 	n␈ε	u␈↓ 
λ␈εβmo␈α␈d␈↓ 
L␈εβ7␈α
=␈α1␈α␈,
␈β?␈↓ ↓H␈ε	u␈↓ ↓a␈εβmod␈↓ α&␈εβ1␈α␈1␈α	=␈α
6␈α␈,␈↓ β ␈ε	u␈↓ β9␈εβmod␈↓ β}␈εβ1␈α␈3␈α	=␈α
5,␈α0␈ε↔␈α	∀␈↓ ¬<␈ε	u␈↓ ¬Z␈εβ<␈α	10␈α␈00.
␈βu␈↓ ↓g␈ε∪2.␈↓ α␈εβ[␈ε	M20␈↓ αX␈εβ]␈α⊗Wou␈α␈l␈α↓d␈α
Th␈α␈eorem␈α
C␈αstill␈αb␈α␈e␈αtru␈α␈e␈αif␈αw␈α␈e␈αallo␈α␈w␈α␈ed␈↓ λ␈ε	a␈↓ λ≤␈εβ,␈↓ λ1␈ε	u␈↓ λP␈εβ,␈↓ λe␈ε	u␈↓ 	∧␈εβ,␈↓ 	_␈εβ.␈αε.␈αε.␈↓ 	E␈εβ,␈↓ 	Y␈ε	u␈↓ 
β␈εβan␈α␈d␈↓ 
D␈ε	u␈↓ 
c␈εβto␈α
be
␈β
␈↓ λD␈εε1␈↓ λx␈εε2␈↓ 	l␈εr
␈β
≥␈↓ ↓H␈εβa␈α␈rbitrar␈α␈y␈αrea␈α␈l␈αn␈α}um␈α␈b␈α␈ers␈α(no␈α␈t␈αjust␈αin␈α␈teg␈α␈ers)?
␈β
N␈↓ ↓;␈ε↓x
␈β
R␈↓ ↓g␈ε∪3.␈↓ α␈εβ[␈ε	M26␈↓ αX␈εβ]␈α⊗(␈ε⊂Gen␈α␈eralized␈αεChine␈α␈se␈απRemain␈α␈der␈απThe␈α␈orem␈εβ.)␈α∂L␈α↓e␈α␈t␈↓ λ2␈ε	m␈↓ λ[␈εβ,␈↓ λl␈ε	m␈↓ 	∃␈εβ,␈↓ 	&␈εβ.␈αε.␈αε.␈↓ 	S␈εβ,␈↓ 	d␈ε	m␈↓ 
∀␈εβb␈α␈e␈αλp␈α␈ositiv␈α␈e
␈β
]␈↓ λN␈εε1␈↓ 	λ␈εε2␈↓ 
␈εr
␈β
z␈↓ ↓H␈εβin␈α}tegers.␈αLet␈↓ βπ␈ε	m␈↓ β/␈εβb␈α␈e␈α
th␈α␈e␈α
least␈α
c␈α␈ommo␈α␈n␈α
m␈α}ultiple␈α
of␈↓ π
␈ε	m␈↓ π3␈εβ,␈↓ πF␈ε	m␈↓ πo␈εβ,␈↓ λα␈εβ.␈αε.␈αε.␈↓ λ/␈εβ,␈↓ λB␈ε	m␈↓ λk␈εβ,␈α
an␈α␈d␈α
let␈↓ 	m␈ε	a␈↓ 	⎇␈εβ,␈↓ 
⊃␈ε	u␈↓ 
0␈εβ,␈↓ 
D␈ε	u␈↓ 
c␈εβ,␈↓ 
w␈εβ.␈αε.␈α¬.␈↓ #␈εβ,
␈β∞¬␈↓ π&␈εε1␈↓ πb␈εε2␈↓ λ←␈εr␈↓ 
$␈εε1␈↓ 
W␈εε2
␈β∞"␈↓ ↓H␈ε	u␈↓ ↓p␈εβb␈α␈e␈α	an␈α}y␈α	in␈α␈t␈α␈egers.␈α
P␈α↓ro␈α}v␈α␈e␈α	t␈α␈hat␈αλthere␈αλi␈α↓s␈αλexa␈α␈ctly␈α	o␈α␈ne␈α	in␈α}teger␈↓ λπ␈ε	u␈↓ λ#␈εβthat␈αλsatis|e␈α␈s␈α	the␈αλcon␈α␈dition␈α␈s
␈β∞,␈↓ ↓[␈εr
␈β∞s␈↓ β␈ε	a␈↓ β&␈ε↔∀␈↓ βP␈ε	u␈↓ βn␈εβ<␈↓ ∧_␈ε	a␈↓ ∧0␈εβ+␈↓ ∧Y␈ε	m␈↓ ∧v␈εβ,␈↓ ¬M␈ε	u␈↓ ¬j␈ε↔⊃␈↓ ε∃␈ε	u␈↓ ε=␈εβ(mod␈α␈ulo␈↓ π?␈ε	m␈↓ πg␈εβ),␈↓ λI1␈ε↔␈α	∀␈↓ 	
␈ε	j␈↓ 	&␈ε↔∀␈↓ 	P␈ε	r␈↓ 	←␈εβ,
␈β∞}␈↓ ε(␈εj␈↓ π[␈εj
␈β∂E␈↓ ↓H␈εβp␈α␈ro␈α␈v␈α␈i␈α↓d␈α␈ed␈α
that
␈β⊂∀␈↓ εs␈εα)
␈β⊂↔␈↓ β?␈ε	u␈↓ βf␈ε↔⊃␈↓ ∧⊂␈ε	u␈↓ ∧Q␈εβm␈α␈odu␈α␈lo␈↓ ¬M␈εβg␈α␈cd␈↓ ¬␈␈εβ(␈↓ ε
␈ε	m␈↓ ε1␈εβ,␈↓ ε?␈ε	m␈↓ εh␈εβ)␈↓ ε␈␈εβ,␈↓ πV1␈ε↔␈α	∀␈↓ λ~␈ε	i␈↓ λ0␈εβ<␈↓ λ[␈ε	j␈↓ λs␈ε↔∀␈↓ 	≡␈ε	r␈↓ 	,␈εβ;
␈β⊂!␈↓ βR␈εi␈↓ ∧#␈εj␈↓ ε&␈εi␈↓ ε\␈εj
␈β⊂h␈↓ ↓H␈εβa␈α␈nd␈α
there␈α
i␈α↓s␈αn␈α␈o␈αsu␈α␈ch␈αin␈α␈te␈α␈ger␈↓ ∧g␈ε	u␈↓ ¬ε␈εβwhe␈α␈n␈αth␈α␈e␈αl␈α↓a␈α␈tter␈αco␈α␈nd␈α␈i␈α↓tion␈α
fails␈αto␈αho␈α␈l␈α↓d␈α␈.
␈β⊃≡␈↓ ↓g␈ε∪4.␈↓ α␈εβ[␈ε	20␈↓ α;␈εβ]␈α⊗Con␈α}tin␈α␈ue␈α
the␈αp␈α␈roce␈α␈ss␈αsho␈α␈wn␈α
i␈α↓n␈α
(13);␈αwha␈α␈t␈αw␈α␈ould␈↓ λ"␈ε	m␈↓ λK␈εβ,␈↓ λ`␈ε	m␈↓ 		␈εβ,␈↓ 	≥␈ε	m␈↓ 	F␈εβ,␈↓ 	Z␈εβ.␈αε.␈αε.␈↓ 
␈εβbe?
␈β⊃)␈↓ λ?␈εε7␈↓ λ|␈εε8␈↓ 	9␈εε9
␈β∪(

␈β↓Y␈↓ ↓H␈εα274␈↓ α=␈ε∞A␈α␈RITH␈α␈METIC␈εα␈↓ 
b4.3.2
␈βα&␈↓ ↓;␈ε↓x
␈βα*␈↓ ↓g␈ε∪5.␈↓ α␈εβ[␈ε	M23␈↓ αX␈εβ]␈α⊗S␈α␈up␈α␈po␈α␈se␈α∂that␈α∂th␈α␈e␈α∂meth␈α␈od␈α∂o␈α␈f␈α⊂(1␈α␈3)␈α∂i␈α↓s␈α∂co␈α␈n␈α␈tin␈α␈u␈α␈ed␈α∂u␈α␈n␈α␈til␈α∂no␈α∂mo␈α␈re␈↓ 
∩␈ε	m␈↓ 
J␈εβca␈α␈n␈α∂be
␈βα5␈↓ 
/␈εj
␈βαR␈↓ ↓H␈εβc␈α␈hose␈α␈n;␈α∞d␈α␈oe␈α␈s␈α
this␈αmeth␈α␈od␈αgiv␈α␈e␈αthe␈αlarg␈α␈est␈α
a␈α␈ttaina␈α␈ble␈α
v␈α␈alue␈↓ λ.␈ε	m␈↓ λW␈ε	m␈↓ 	¬␈εβ.␈αε.␈αε.␈↓ 	2␈ε	m␈↓ 	g␈εβsuc␈α␈h␈αthat␈αthe
␈βα\␈↓ λJ␈εε1␈↓ λs␈εε2␈↓ 	N␈εr
␈βαy␈↓ ↓H␈ε	m␈↓ ↓{␈εβare␈αo␈α␈dd␈α
positiv␈α␈e␈α
i␈α↓n␈α}tege␈α␈rs␈αl␈α↓es␈α␈s␈αt␈α␈han␈α
100␈α
tha␈α␈t␈αare␈αrelativ␈α}ely␈αp␈α␈ri␈α↓m␈α␈e␈αi␈α↓n␈α
pa␈α␈i␈α↓rs␈α␈?
␈ββ∧␈↓ ↓d␈εj
␈ββ&␈↓ λ`␈εe␈↓ 	/␈εf␈↓ 
W␈εg
␈ββ*␈↓ ↓g␈ε∪6.␈↓ α␈εβ[␈ε	M22␈↓ αX␈εβ]␈α⊗Let␈↓ β2␈ε	e␈↓ β?␈εβ,␈↓ βS␈ε	f␈↓ βc␈εβ,␈↓ βv␈ε	g␈↓ ∧∂␈εβbe␈α	no␈α␈nn␈α␈egat␈α␈i␈α↓v␈α}e␈α
in␈α␈te␈α␈gers.␈α⊗(a␈α␈)␈α
Sh␈α␈o␈α␈w␈α
th␈α␈at␈↓ λP␈εβ2␈↓ λt␈ε↔⊃␈↓ 	∨␈εβ2␈↓ 	E␈εβ(mod␈α␈ulo␈↓ 
G␈εβ2␈↓ 
j␈ε↔␈␈εβ␈αε1␈α␈)
␈ββR␈↓ ↓H␈εβif␈απan␈α␈d␈απo␈α␈nly␈αεi␈α↓f␈↓ β↓␈ε	e␈↓ β↔␈ε↔⊃␈↓ βA␈ε	f␈↓ β[␈εβ(m␈α␈odu␈α␈lo␈↓ ∧\␈ε	g␈↓ ∧l␈εβ).␈α∞(␈α↓b␈α␈)␈απGiv␈α␈en␈αεtha␈α␈t␈↓ ε←␈ε	e␈↓ εr␈εβm␈α␈od␈↓ π6␈ε	f␈↓ πO␈εβ=␈↓ πz␈ε	d␈↓ λ∪␈εβan␈α␈d␈↓ λP␈ε	c␈↓ λ]␈ε	e␈↓ λo␈εβmod␈↓ 	4␈ε	f␈↓ 	M␈εβ=␈α	1,␈αλp␈α␈ro␈α␈v␈α␈e␈αεtha␈α␈t
␈β∧∞␈↓ ∧≤␈εd␈↓ ¬C␈εε(␈↓ ¬K␈εc␈↓ ¬V␈ε~␈␈εε1)␈↓ ε∧␈εd␈↓ εR␈εe␈↓ λ~␈εf
␈β∧⊃␈↓ β4␈εα(␈↓ π(␈εα)
␈β∧∀␈↓ β@␈εβ(1␈απ+␈↓ ∧␈εβ2␈↓ ∧2␈εβ+␈↓ ∧[␈ε↔↓␈αε↓␈αε↓␈↓ ¬	␈εβ+␈↓ ¬2␈εβ2␈↓ ε∪␈εβ)␈ε↔␈απ↓␈εβ␈αλ(␈↓ εA␈εβ2␈↓ εd␈ε↔␈␈εβ␈αλ1␈α␈)␈↓ π:␈εβmo␈α␈d␈↓ π}␈εβ(␈↓ λ	␈εβ2␈↓ λ.␈ε↔␈␈εβ␈αλ1␈α␈)␈α
=␈α	1.
␈β∧R␈↓ 	␈εe␈↓ 
\␈εf
␈β∧V␈↓ ↓H␈εβ[Th␈α␈u␈α␈s,␈α	we␈αλha␈α␈v␈α␈e␈αλa␈α	co␈α␈mp␈α␈arativ␈α}ely␈α	simp␈α␈le␈α	form␈α}ula␈α	fo␈α␈r␈α	th␈α␈e␈α	in␈α␈v␈α}erse␈α	o␈α␈f␈↓ λo␈εβ2␈↓ 	∂␈ε↔␈␈εβ␈α∧1,␈α	mod␈α␈ulo␈↓ 
K␈εβ2␈↓ 
m␈ε↔␈␈εβ␈α¬1␈α␈,
␈β∧}␈↓ ↓H␈εβa␈α␈s␈αrequ␈α␈ired␈αin␈α(2␈α␈2).]
␈β¬*␈↓ ↓;␈ε↓x
␈β¬.␈↓ ↓g␈ε∪7.␈↓ α␈εβ[␈ε	M21␈↓ αX␈εβ]␈α⊗S␈α␈ho␈α␈w␈αth␈α␈at␈α(23␈α␈)␈αcan␈α
be␈αrewritten␈α
as␈αfollo␈α␈ws:
␈β¬k␈↓ ↓}␈ε	v␈↓ α"␈ε↔ ␈↓ αM␈ε	u␈↓ αr␈εβmod␈↓ β7␈ε	m␈↓ β`␈εβ,
␈β¬v␈↓ α
␈εε1␈↓ α`␈εε1␈↓ βS␈εε1
␈βε∪␈↓ ↓}␈ε	v␈↓ α"␈ε↔ ␈εβ␈α
(␈↓ αX␈ε	u␈↓ α␈␈ε↔␈␈↓ β(␈ε	v␈↓ βC␈εβ)␈↓ βT␈ε	c␈↓ β␈␈εβm␈α␈od␈↓ ∧C␈ε	m␈↓ ∧l␈εβ,
␈βε≥␈↓ α
␈εε2␈↓ αk␈εε2␈↓ β7␈εε1␈↓ β`␈εε1␈α␈2␈↓ ∧←␈εε2
␈βε7␈↓ αM␈εα(␈↓ ∧O␈εα)
␈βε:␈↓ ↓}␈ε	v␈↓ α"␈ε↔ ␈↓ αY␈ε	u␈↓ β␈ε↔␈␈εβ␈αλ(␈↓ β4␈ε	v␈↓ βW␈εβ+␈↓ β␈␈ε	m␈↓ ∧(␈ε	v␈↓ ∧D␈εβ)␈↓ ∧`␈ε	c␈↓ ¬¬␈ε	c␈↓ ¬0␈εβmod␈↓ ¬u␈ε	m␈↓ ε≡␈εβ,
␈βεE␈↓ α
␈εε3␈↓ αl␈εε3␈↓ βC␈εε1␈↓ ∧≤␈εε1␈↓ ∧7␈εε2␈↓ ∧l␈εε13␈↓ ¬⊃␈εε23␈↓ ε⊃␈εε3
␈βε`␈↓ α⊂␈εβ.
␈βεn␈↓ α⊂␈εβ.
␈βε⎇␈↓ α⊂␈εβ.
␈βπ!␈↓ αM␈εα(␈↓ λ7␈εα)
␈βπ$␈↓ ↓}␈ε	v␈↓ α"␈ε↔ ␈↓ αY␈ε	u␈↓ β␈ε↔␈␈εβ␈απ(␈↓ β3␈ε	v␈↓ βV␈εβ+␈↓ β␈␈ε	m␈↓ ∧(␈εβ(␈↓ ∧3␈ε	v␈↓ ∧V␈εβ+␈↓ ∧}␈ε	m␈↓ ¬'␈εβ(␈↓ ¬2␈ε	v␈↓ ¬U␈εβ+␈↓ ¬}␈ε↔↓␈αε↓␈α¬↓␈↓ ε,␈εβ+␈↓ εU␈ε	m␈↓ π#␈ε	v␈↓ πd␈εβ)␈↓ πt␈εβ.␈αε.␈αε.␈↓ λ!␈εβ))␈↓ λI␈ε	c␈↓ λs␈εβ.␈αε.␈αε.␈↓ 	∨␈ε	c␈↓ 
␈εβmo␈α␈d␈↓ 
D␈ε	m␈↓ 
m␈εβ.
␈βπ/␈↓ α
␈εr␈↓ αl␈εr␈↓ βB␈εε1␈↓ ∧≠␈εε1␈↓ ∧B␈εε2␈↓ ¬≠␈εε2␈↓ ¬A␈εε3␈↓ εq␈εr␈↓ ε⎇␈ε~␈␈εε␈α↓2␈↓ π2␈εr␈↓ π>␈ε~␈␈εε1␈↓ λU␈εε1␈↓ λa␈εr␈↓ 
a␈εr
␈βπ0␈↓ 	+␈εε(␈↓ 	4␈εr␈↓ 	@␈ε~␈␈εε1)␈↓ 	n␈εr
␈βπc␈↓ ↓H␈εβIf␈α⊂th␈α␈e␈α⊂fo␈α␈rm␈α␈ulas␈α∂are␈α∂rewritten␈α∂i␈α↓n␈α∂th␈α␈is␈α⊂way␈α␈,␈α∩w␈α␈e␈α∂see␈α∂that␈α∂on␈α␈l␈α↓y␈↓ λ[␈ε	r␈↓ λt␈ε↔␈␈εβ␈α1␈α∂con␈α␈stan␈α}ts␈↓ 
X␈ε	C␈↓ ␈εβ=
␈βπn␈↓ 
n␈εj
␈βλ␈↓ ↓H␈ε	c␈↓ ↓r␈εβ.␈αε.␈α¬.␈↓ α≡␈ε	c␈↓ α␈␈εβm␈α␈od␈↓ βC␈ε	m␈↓ βs␈εβare␈αλn␈α␈eed␈α␈ed␈αλin␈α␈stead␈απof␈↓ ε'␈ε	r␈↓ ε6␈εβ(␈↓ εA␈ε	r␈↓ εS␈ε↔␈␈εβ␈αβ1)/␈α␈2␈αλcon␈α␈stan␈α}ts␈↓ λL␈ε	c␈↓ λw␈εβa␈α␈s␈αλi␈α↓n␈απ(23␈α␈)␈α↓.␈α
Discu␈α␈ss␈αλthe
␈βλ∃␈↓ ↓T␈εε1␈↓ ↓`␈εj␈↓ β←␈εj␈↓ λX␈εi␈↓ λc␈εj
␈βλ⊗␈↓ α*␈εε(␈↓ α3␈εj␈↓ α?␈ε~␈␈εε1)␈↓ αm␈εj
␈βλ2␈↓ ↓H␈εβre␈α␈l␈α↓a␈α␈tiv␈α␈e␈αm␈α␈erits␈αof␈α
this␈αv␈α}ersion␈α
of␈αth␈α␈e␈αfo␈α␈rm␈α␈ula␈α
as␈αc␈α␈omp␈α␈ared␈α
to␈α
(23),␈αfrom␈α
th␈α␈e␈αstan␈α␈dp␈α␈oin␈α}t
␈βλZ␈↓ ↓H␈εβo␈α␈f␈αcomp␈α␈ute␈α␈r␈αcalcu␈α␈l␈α↓a␈α␈ti␈α↓o␈α␈n.
␈β	␈↓ ↓g␈ε∪8.␈↓ α␈εβ[␈ε	M21␈↓ αX␈εβ]␈α⊗Pro␈α␈v␈α}e␈αtha␈α␈t␈αthe␈αn␈α}um␈α␈b␈α␈er␈↓ ¬M␈ε	u␈↓ ¬l␈εβde␈α␈|n␈α␈ed␈αb␈α␈y␈α(23␈α␈)␈αa␈α␈nd␈α
(24)␈αsat␈α␈i␈α↓s|␈α␈es␈α(25␈α␈)␈α↓.
␈β	;␈↓ ↓g␈ε∪9.␈↓ α␈εβ[␈ε	M20␈↓ αX␈εβ]␈α⊗S␈α␈ho␈α␈w␈α	h␈α␈o␈α␈w␈α	to␈α	go␈α	from␈α	th␈α␈e␈α	va␈α␈l␈α↓u␈α␈es␈↓ εK␈ε	v␈↓ εf␈εβ,␈↓ εy␈εβ.␈αε.␈αε.␈↓ π&␈εβ,␈↓ π9␈ε	v␈↓ π]␈εβof␈α	th␈α␈e␈α	mix␈α␈ed␈α␈-radix␈α	n␈α␈ota␈α␈ti␈α↓o␈α␈n␈α	(24␈α␈)
␈β	F␈↓ εZ␈εε1␈↓ πG␈εr
␈β	c␈↓ ↓H␈εβb␈α␈ack␈α
to␈α
the␈αo␈α␈riginal␈αre␈α␈si␈α↓d␈α␈ue␈α␈s␈↓ ∧n␈ε	u␈↓ ¬∞␈εβ,␈↓ ¬"␈εβ.␈αε.␈αε.␈↓ ¬O␈εβ,␈↓ ¬c␈ε	u␈↓ εα␈εβ,␈αusin␈α␈g␈αon␈α␈ly␈αa␈α␈ri␈α↓th␈α␈metic␈αm␈α␈od␈↓ 	!␈ε	m␈↓ 	U␈εβto␈α
com␈α␈pu␈α␈te␈↓ ∧␈ε	u␈↓ #␈εβ.
␈β	n␈↓ ¬↓␈εε1␈↓ ¬v␈εr␈↓ 	>␈εj␈↓ ↔␈εj
␈β
∀␈↓ ↓V␈ε∪10.␈↓ α␈εβ[␈ε	M25␈↓ αX␈εβ]␈α⊗An␈αin␈α␈teg␈α␈er␈↓ ∧≤␈ε	u␈↓ ∧;␈εβtha␈α␈t␈αlies␈αin␈αth␈α␈e␈αsy␈α␈mmet␈α␈ri␈α↓c␈α␈al␈αran␈α␈ge␈α(10)␈αmigh␈α}t␈αb␈α␈e␈αrep␈α␈resen␈α}ted
␈β
;␈↓ ↓H␈εβb␈α␈y␈α
|n␈α␈din␈α␈g␈αth␈α␈e␈α
n␈α␈um␈α}bers␈↓ ∧#␈ε	u␈↓ ∧C␈εβ,␈↓ ∧W␈εβ.␈αε.␈α¬.␈↓ ¬β␈εβ,␈↓ ¬↔␈ε	u␈↓ ¬A␈εβsu␈α␈ch␈α
tha␈α␈t␈↓ εT␈ε	u␈↓ εq␈ε↔⊃␈↓ π≤␈ε	u␈↓ πD␈εβ(mod␈α␈ulo␈↓ λF␈ε	m␈↓ λn␈εβ)␈αa␈α␈nd␈ε↔␈α
␈␈↓ 	e␈ε	m␈↓ 
∞␈εβ/␈α␈2␈α	<␈↓ 
c␈ε	u␈↓ ␈εβ<
␈β
F␈↓ ∧6␈εε1␈↓ ¬*␈εr␈↓ π/␈εj␈↓ λb␈εj␈↓ 
α␈εj␈↓ 
v␈εj
␈β
c␈↓ ↓H␈ε	m␈↓ ↓p␈εβ/2␈α␈,␈α⊃inste␈α␈ad␈α∂o␈α␈f␈α⊂in␈α␈si␈α↓stin␈α␈g␈α∂tha␈α␈t␈α∂0␈ε↔␈α⊂∀␈↓ ¬s␈ε	u␈↓ ε"␈εβ<␈↓ εS␈ε	m␈↓ π␈εβas␈α∂in␈α∂th␈α␈e␈α∂text␈α␈.␈α_Discuss␈α∂th␈α␈e␈α∂mod␈α␈ula␈α␈r
␈β
n␈↓ ↓d␈εj␈↓ εε␈εj␈↓ εp␈εj
␈β␈↓ ↓H␈εβa␈α␈rithme␈α␈ti␈α↓c␈α
pro␈α␈cedu␈α␈res␈αth␈α␈at␈αw␈α␈o␈α␈uld␈α
be␈αa␈α␈pp␈α␈rop␈α␈ri␈α↓a␈α␈te␈αin␈αc␈α␈on␈α␈nectio␈α␈n␈αwith␈α
such␈α
a␈αsy␈α␈metr␈α␈i␈α↓ca␈α␈l
␈β/␈↓ β!␈εα(␈↓ πM␈εα)
␈β2␈↓ ↓H␈εβre␈α␈prese␈α␈n␈α␈tatio␈α␈n␈↓ β-␈εβinclu␈α␈ding␈α
the␈αc␈α␈on␈α␈v␈α}ersion␈α
proc␈α␈ess,␈α(␈α↓2␈α␈3)␈↓ πY␈εβ.
␈βc␈↓ ↓V␈ε∪11.␈↓ α␈εβ[␈ε	M23␈↓ αX␈εβ]␈α⊗Assu␈α␈me␈αtha␈α␈t␈αa␈α␈l␈α↓l␈αthe␈↓ ¬"␈ε	m␈↓ ¬V␈εβare␈αod␈α␈d,␈αan␈α␈d␈αthat␈↓ πb␈ε	u␈↓ λ␈εβ=␈α
(␈↓ λ6␈ε	u␈↓ λV␈εβ,␈↓ λe␈εβ.␈α¬.␈αε.␈↓ 	⊃␈εβ,␈↓ 	 ␈ε	u␈↓ 	?␈εβ)␈αis␈αkn␈α␈o␈α␈wn␈αto␈αbe
␈βn␈↓ ¬>␈εj␈↓ λI␈εε1␈↓ 	3␈εr
␈β␈↓ ↓H␈εβe␈α␈v␈α␈en␈α␈,␈α
wh␈α␈ere␈α	0␈ε↔␈α	∀␈↓ β>␈ε	u␈↓ β[␈εβ<␈↓ ∧ε␈ε	m␈↓ ∧#␈εβ.␈αFind␈αλa␈α	re␈α␈ason␈α␈ab␈α␈ly␈α	fast␈αλmeth␈α␈od␈αλto␈α	c␈α␈omp␈α␈ute␈↓ 	!␈ε	u␈↓ 	5␈εβ/2␈α	u␈α␈sing␈αλmod␈α␈ula␈α␈r
␈β2␈↓ ↓H␈εβa␈α␈rithme␈α␈ti␈α↓c␈α␈.
␈βc␈↓ ↓V␈ε∪12.␈↓ α␈εβ[␈ε	M10␈↓ αX␈εβ]␈α⊗Pro␈α␈v␈α}e␈α⊂t␈α␈hat,␈α⊂if␈α⊂0␈ε↔␈α⊂∀␈↓ ¬$␈ε	u␈↓ ¬8␈εβ,␈↓ ¬G␈ε	v␈↓ ¬i␈εβ<␈↓ ε~␈ε	m␈↓ ε8␈εβ,␈α⊂the␈α∂m␈α␈odu␈α␈lar␈α∂ad␈α␈dition␈α∂o␈α␈f␈↓ 	I␈ε	u␈↓ 	l␈εβan␈α␈d␈↓ 
1␈ε	v␈↓ 
R␈εβca␈α␈use␈α␈s
␈β
␈↓ ↓H␈εβo␈α}v␈α␈er⎇␈α␈o␈α␈w␈α(i.e.,␈α
is␈αo␈α␈utside␈αthe␈αran␈α␈ge␈αa␈α␈ll␈α↓o␈α}we␈α␈d␈αb␈α␈y␈αt␈α␈he␈αm␈α␈odu␈α␈lar␈αre␈α␈prese␈α␈n␈α␈tatio␈α␈n)␈αif␈αan␈α␈d␈αo␈α␈nly
␈β
2␈↓ ↓H␈εβif␈α∞th␈α␈e␈α∞su␈α␈m␈α∞is␈α
l␈α↓e␈α␈ss␈α∞tha␈α␈n␈↓ ∧"␈ε	u␈↓ ∧6␈εβ.␈α∀(Th␈α}us␈α
the␈α
o␈α␈v␈α␈e␈α␈r⎇o␈α␈w␈α
dete␈α␈ction␈α
pro␈α␈blem␈α
i␈α↓s␈α
equ␈α␈ivalen␈α}t␈α∞to␈α
the
␈β
Z␈↓ ↓H␈εβc␈α␈omp␈α␈arison␈α
pro␈α␈blem.)
␈β∞π␈↓ ↓;␈ε↓x
␈β∞␈↓ ↓V␈ε∪13.␈↓ α␈εβ[␈ε	M25␈↓ αX␈εβ]␈α⊗(␈ε⊂Au␈α␈tomo␈α␈rph␈α␈i␈α↓c␈αn␈α␈um␈α}bers.␈εβ)␈α≥An␈↓ ε0␈ε	n␈↓ εD␈εβ-␈α↓p␈α␈lace␈α
d␈α␈ecima␈α␈l␈α∞n␈α}um␈α}ber␈↓ 	≥␈ε	x␈↓ 	:␈εβ>␈α
1␈α
is␈α
ca␈α␈l␈α↓led␈αan
␈β∞.␈↓ 	>␈εε2
␈β∞2␈↓ ↓H␈εβ\␈α␈au␈α␈tomo␈α␈rph␈α␈"␈αby␈αre␈α␈creat␈α␈i␈α↓o␈α␈nal␈αma␈α␈them␈α␈atician␈α␈s␈α
if␈αthe␈αlast␈↓ λ	␈ε	n␈↓ λ)␈εβdigits␈αof␈↓ 	-␈ε	x␈↓ 	W␈εβare␈αeq␈α␈ua␈α␈l␈α
to␈↓ ∩␈ε	x␈↓ #␈εβ.
␈β∞V␈↓ πs␈εε2
␈β∞Z␈↓ ↓H␈εβFo␈α␈r␈α∂ex␈α␈amp␈α␈le,␈α⊂9␈α␈376␈α∞is␈α∞a␈α∂4␈α␈-place␈α∞a␈α␈utom␈α␈orp␈α␈h,␈α∂si␈α↓n␈α␈ce␈α∞937␈↓ πb␈εβ6␈↓ λ∞␈εβ=␈α⊂8␈α␈79␈α␈093␈α␈76.␈α∃[See␈ε⊂␈α∞Sc␈α␈i␈α↓e␈α␈n␈α␈ti|c
␈β∂↓␈↓ ↓H␈ε⊂Am␈α␈erican␈ε∪␈α
218␈εβ␈α(J␈α␈an␈α␈u␈α␈ary␈α
196␈α␈8),␈α125␈α␈.]
␈β∂,␈↓ 
X␈εn
␈β∂1␈↓ ↓e␈εβa)␈↓ α␈εβPro␈α␈v␈α␈e␈α
tha␈α␈t␈αan␈↓ β↑␈ε	n␈↓ βr␈εβ-plac␈α␈e␈αn␈α}um␈α␈b␈α␈er␈↓ ¬J␈ε	x␈↓ ¬d␈εβ>␈α
1␈α
i␈α↓s␈α
an␈α
aut␈α␈omor␈α␈ph␈α
i␈α↓f␈α
and␈α
o␈α␈nly␈αif␈↓ 	l␈ε	x␈↓ 
β␈εβm␈α␈od␈↓ 
G␈εβ5␈↓ 
q␈εβ=␈α
0
␈β∂T␈↓ ∧β␈εn␈↓ 	β␈εn␈↓ 
W␈εn
␈β∂X␈↓ α␈εβor␈α
1␈α
a␈α␈nd␈↓ β↔␈ε	x␈↓ β.␈εβmod␈↓ βs␈εβ2␈↓ ∧ ␈εβ=␈α
1␈α
or␈α
0␈α␈,␈α∞resp␈α␈ectiv␈α␈ely␈α␈.␈α∩[Th␈α␈u␈α␈s,␈α∞if␈↓ λ∞␈ε	m␈↓ λD␈εβ=␈↓ λr␈εβ2␈↓ 	 ␈εβan␈α␈d␈↓ 	c␈ε	m␈↓ 
_␈εβ=␈↓ 
F␈εβ5␈↓ 
g␈εβ,␈α∞the
␈β∂c␈↓ λ+␈εε1␈↓ 	␈␈εε2
␈β⊂␈↓ α␈εβon␈α␈ly␈αt␈α␈w␈α␈o␈↓ β∃␈ε	n␈↓ β)␈εβ-pla␈α␈ce␈αau␈α␈tomo␈α␈rph␈α␈s␈αare␈αth␈α␈e␈αn␈α␈u␈α␈m␈α␈be␈α␈rs␈↓ π6␈ε	M␈↓ πk␈εβa␈α␈nd␈↓ λ+␈ε	M␈↓ λ`␈εβin␈α(7␈α␈)␈α↓.]
␈β⊂
␈↓ πS␈εε1␈↓ λH␈εε2
␈β⊂#␈↓ πg␈εε2␈↓ λG␈εε3␈↓ 	J␈εε2␈↓ 	W␈εn
␈β⊂'␈↓ ↓c␈εβb)␈↓ α␈εβPro␈α␈v␈α␈e␈αth␈α␈at␈αif␈↓ βS␈ε	x␈↓ βq␈εβis␈αan␈↓ ∧C␈ε	n␈↓ ∧W␈εβ-p␈α␈l␈α↓a␈α␈ce␈αau␈α␈tomo␈α␈rph␈α␈,␈α
th␈α␈en␈α(3␈↓ πV␈ε	x␈↓ π|␈ε↔␈␈εβ␈αλ2␈↓ λ6␈ε	x␈↓ λT␈εβ)␈↓ λe␈εβm␈α␈od␈↓ 	)␈εβ1␈↓ 	:␈εβ0␈↓ 	s␈εβi␈α↓s␈αa␈α2␈↓ 
C␈ε	n␈↓ 
W␈εβ-place
␈β⊂O␈↓ α␈εβau␈α␈tomo␈α␈rph␈α␈.
␈β⊂r␈↓ 
∀␈ε~0
␈β⊂w␈↓ ↓g␈εβc)␈↓ α␈εβGiv␈α␈en␈α	tha␈α␈t␈↓ β4␈ε	c␈↓ βA␈ε	x␈↓ β[␈ε↔⊃␈εβ␈α
1␈α	(mo␈α␈du␈α␈l␈α↓o␈↓ ¬!␈ε	y␈↓ ¬4␈εβ),␈αwh␈α␈at␈α
is␈α
a␈α
si␈α↓m␈α␈ple␈α
form␈α␈u␈α␈la␈α
f␈α↓o␈α␈r␈α
a␈α
n␈α␈u␈α␈m␈α␈ber␈↓ 
π␈ε	c␈↓ 
$␈εβsuch␈α	tha␈α␈t
␈β⊃~␈↓ α→␈ε~0␈↓ α1␈εε2␈↓ ∧∨␈εε2
␈β⊃≡␈↓ α␈ε	c␈↓ α∨␈ε	x␈↓ αG␈ε↔⊃␈εβ␈α	1␈α	(mod␈α␈ulo␈↓ ∧
␈ε	y␈↓ ∧,␈εβ)?
␈β∪(

␈β↓Y␈↓ ↓H␈εα4.3.3␈ε∞␈↓ πλHO␈α␈W␈α	F␈α|AST␈αλCAN␈α	WE␈α	MU␈α␈L␈α}TIP␈α␈L␈α}Y␈εα␈α␈?␈↓ 
v␈εα275
␈βα(␈↓ ↓4␈ε≥*␈↓ ↓H␈ε≥4␈α␈.3.3.␈α
Ho␈α␈w␈α
Fast␈α
C␈α↓an␈α
We␈α
M␈α␈u␈α↓ltipl␈α↓y?
␈βαi␈↓ ↓H␈εαThe␈α∪con␈α␈v␈α␈en␈α␈tional␈α∪method␈α∪for␈α∪m␈α␈ultiplication,␈α∃Algorithm␈α∪4.3.1M,␈α∪requires␈α∪ap-
␈ββ∀␈↓ ↓H␈εαpro␈α␈ximately␈↓ β␈ελc␈↓ β≠␈ελm␈↓ β:␈ελn␈↓ βX␈εαoperations␈αλto␈απm␈α␈ultiply␈αλan␈↓ εd␈ελm␈↓ π∧␈εα-digit␈απn␈α␈um␈α␈ber␈αλby␈αλan␈↓ 	;␈ελn␈↓ 	Q␈εα-digit␈απn␈α␈um␈α␈ber,
␈ββ?␈↓ ↓H␈εαwhere␈↓ α.␈ελc␈↓ αG␈εαis␈αa␈αconstan␈α␈t.␈αIn␈α
this␈αsection,␈αlet␈αus␈αassume␈αfor␈α
con␈α␈v␈α␈enience␈αthat␈↓ 
5␈ελm␈↓ 
←␈εα=␈↓ 
␈ελn␈↓ "␈εα,
␈ββj␈↓ ↓H␈εαand␈αλlet␈απus␈αλconsider␈αλthe␈αλfollo␈α␈wing␈αλquestion:␈ε∂␈α
Does␈αλev␈α␈ery␈αλgeneral␈αλcomputer␈απalgorithm
␈β∧⊗␈↓ ↓H␈ε∂for␈α∞m␈α␈ultiplying␈α∞t␈α␈w␈α␈o␈↓ ∧␈ελn␈↓ ∧!␈ε∂-digit␈α∂n␈α␈um␈α␈bers␈α∞require␈α∞an␈α∂ex␈α␈ecution␈α∞time␈α∞proportional␈α∞to
␈β∧<␈↓ ↓]␈ε¬2
␈β∧A␈↓ ↓H␈ελn␈↓ ↓l␈ε∂,␈αas␈↓ α.␈ελn␈↓ αO␈ε∂increases?
␈β∧l␈↓ α␈εα(In␈α	this␈αλquestion,␈α
a␈α	\general"␈αλalgorithm␈α	means␈α	one␈αλthat␈α	accepts,␈α	as␈α	input,␈α	the
␈β¬↔␈↓ ↓H␈εαn␈α␈um␈α␈ber␈↓ αK␈ελn␈↓ αm␈εαand␈α
t␈α␈w␈α␈o␈α
arbitrary␈↓ ¬∀␈ελn␈↓ ¬*␈εα-digit␈α
n␈α␈um␈α␈bers␈α
in␈α
positional␈α
notation,␈α
and␈α
whose
␈β¬B␈↓ ↓H␈εαoutput␈α	is␈α
their␈α
product␈α	in␈α
positional␈α	form.␈αCertainly␈α	if␈α
w␈α␈e␈α
w␈α␈ere␈α	allo␈α␈w␈α␈ed␈α
to␈α	choose
␈β¬n␈↓ ↓H␈εαa␈α
di{eren␈α␈t␈α
algorithm␈α∞for␈α
each␈α∞value␈α
of␈↓ ε7␈ελn␈↓ εL␈εα,␈α∞the␈α
question␈α∞w␈α␈ould␈α
be␈α∞of␈α
no␈α
in␈α␈terest,
␈βε→␈↓ ↓H␈εαsince␈α	m␈α␈ultiplication␈α
could␈α
be␈α	done␈α
for␈α	an␈α␈y␈α
speci|c␈α
value␈α	of␈↓ λX␈ελn␈↓ λw␈εαby␈α
a␈α	\table-lookup"
␈βεD␈↓ ↓H␈εαoperation␈α
in␈α
some␈α
h␈α␈uge␈α	table.␈αThe␈α
term␈α
\computer␈α
algorithm"␈α
is␈α
mean␈α␈t␈α	to␈α
imply
␈βεo␈↓ ↓H␈εαan␈α
algorithm␈α
that␈α
is␈α
suitable␈α
for␈α
implemen␈α␈tation␈α
on␈α
a␈αdigital␈α
computer␈α
such␈α
as
␈βπ~␈↓ ↓H␈ε∃M␈α␈IX␈εα,␈αand␈αthe␈αex␈α␈ecution␈αtime␈αis␈αto␈αbe␈αthe␈αtime␈αit␈αtak␈α␈es␈αto␈αperform␈αthe␈αalgorithm
␈βπF␈↓ ↓H␈εαon␈αsuch␈αa␈αcomputer.)
␈βλα␈↓ ↓H␈ε∩A.␈α∞Digital␈α∞methods.␈εα␈α≥The␈α∞answ␈α␈er␈α∂to␈α∞the␈α∞abo␈α␈v␈α␈e␈α∞question␈α∞is,␈α∂rather␈α∞surprisingly,
␈βλ-␈↓ ↓H␈εα\No,"␈α∂and,␈α∂in␈α∞fact,␈α∂it␈α∂is␈α∞not␈α∂v␈α␈ery␈α∞di}cult␈α∂to␈α∞see␈α∂wh␈α␈y.␈α∪For␈α∂con␈α␈v␈α␈enience,␈α∂let␈α∞us
␈βλX␈↓ ↓H␈εαassume␈α
throughout␈α∞this␈α
section␈α
that␈α∞w␈α␈e␈α
are␈α∞w␈α␈orking␈α
with␈α∞in␈α␈tegers␈α
expressed␈α
in
␈β	β␈↓ ↓H␈εαbinary␈αnotation.␈α∞If␈αw␈α␈e␈α
hav␈α␈e␈αt␈α␈w␈α␈o␈α
2␈↓ ¬\␈ελn␈↓ ¬q␈εα-bit␈α
n␈α␈um␈α␈bers␈↓ πF␈ελu␈↓ πg␈εα=␈α
(␈↓ λ!␈ελu␈↓ 	λ␈εα.␈αε.␈αε.␈↓ 	8␈ελu␈↓ 	[␈ελu␈↓ 	⎇␈εα)␈↓ 
$␈εαand␈↓ 
k␈ελv␈↓ λ␈εα=
␈β	⊃␈↓ λ6␈ε¬2␈↓ λD␈εn␈↓ λV␈ε→␈␈ε¬1␈↓ 	L␈ε¬1␈↓ 	o␈ε¬0␈↓ 
	␈ε¬2
␈β	.␈↓ ↓H␈εα(␈↓ ↓T␈ελv␈↓ α5␈εα.␈αε.␈αε.␈↓ αe␈ελv␈↓ ββ␈ελv␈↓ β!␈εα)␈↓ β<␈εα,␈αw␈α␈e␈αcan␈αwrite
␈β	<␈↓ ↓c␈ε¬2␈↓ ↓r␈εn␈↓ α∧␈ε→␈␈ε¬1␈↓ αu␈ε¬1␈↓ β∪␈ε¬0␈↓ β-␈ε¬2
␈β	t␈↓ ∧⎇␈εn␈↓ πB␈εn
␈β	z␈↓ ∧≥␈ελu␈↓ ∧=␈εα=␈↓ ∧k␈εα2␈↓ ¬∂␈ελU␈↓ ¬<␈εα+␈↓ ¬h␈ελU␈↓ ε
␈εα,␈↓ εe␈ελv␈↓ πα␈εα=␈↓ π0␈εα2␈↓ πT␈ελV␈↓ π␈␈εα+␈↓ λ+␈ελV␈↓ λM␈εα,␈↓ α␈εα(1)
␈β
π␈↓ ¬&␈ε¬1␈↓ ¬␈␈ε¬0␈↓ πh␈ε¬1␈↓ λ?␈ε¬0
␈β
E␈↓ ↓H␈εαwhere␈↓ α1␈ελU␈↓ αd␈εα=␈α
(␈↓ β!␈ελu␈↓ ∧π␈εα.␈αε.␈αε.␈↓ ∧7␈ελu␈↓ ∧]␈εα)␈↓ ¬ε␈εαis␈α
the␈α∞\most␈α∞signi|can␈α␈t␈α∞half"␈α∞of␈α
the␈α∞n␈α␈um␈α␈ber␈↓ 
O␈ελu␈↓ 
r␈εαand
␈β
S␈↓ αH␈ε¬1␈↓ β5␈ε¬2␈↓ βD␈εn␈↓ βV␈ε→␈␈ε¬1␈↓ ∧K␈εn␈↓ ∧i␈ε¬2
␈β
q␈↓ ↓H␈ελU␈↓ ↓x␈εα=␈α(␈↓ α4␈ελu␈↓ β␈εα.␈αε.␈αε.␈↓ β;␈ελu␈↓ β↑␈εα)␈↓ ∧ε␈εαis␈αthe␈α
\least␈α
signi|can␈α␈t␈α
half";␈α
similarly␈↓ λv␈ελV␈↓ 	$␈εα=␈α(␈↓ 	←␈ελv␈↓ 
@␈εα.␈αε.␈αε.␈↓ 
p␈ελv␈↓ ∩␈εα)
␈β
}␈↓ ↓←␈ε¬0␈↓ αH␈εn␈↓ αZ␈ε→␈␈ε¬1␈↓ βP␈ε¬0␈↓ βj␈ε¬2␈↓ 	
␈ε¬1␈↓ 	o␈ε¬2␈↓ 	⎇␈εn␈↓ 
∂␈ε→␈␈ε¬1␈↓ ␈εn␈↓ ≡␈ε¬2
␈β≤␈↓ ↓H␈εαand␈↓ α∞␈ελV␈↓ α:␈εα=␈α
(␈↓ αt␈ελv␈↓ βG␈εα.␈αε.␈αε.␈↓ βw␈ελv␈↓ ∧∃␈εα)␈↓ ∧0␈εα.␈αNo␈α␈w␈αw␈α␈e␈αhav␈α␈e
␈β)␈↓ α"␈ε¬0␈↓ β∧␈εn␈↓ β⊗␈ε→␈␈ε¬1␈↓ ∧π␈ε¬0␈↓ ∧!␈ε¬2
␈βa␈↓ βP␈ε¬2␈↓ β↑␈εn␈↓ ∧6␈εn␈↓ ¬b␈εn␈↓ λm␈εn
␈βg␈↓ αQ␈ελu␈↓ αg␈ελv␈↓ β∧␈εα=␈α
(␈↓ β>␈εα2␈↓ βx␈εα+␈↓ ∧$␈εα2␈↓ ∧H␈εα)␈↓ ∧T␈ελU␈↓ ∧y␈ελV␈↓ ¬$␈εα+␈↓ ¬P␈εα2␈↓ ¬t␈εα(␈↓ ε␈ελU␈↓ ε-␈ε⊗␈␈↓ εY␈ελU␈↓ ε}␈εα)(␈↓ π⊗␈ελV␈↓ πA␈ε⊗␈␈↓ πm␈ελV␈↓ λ∂␈εα)␈αλ+␈αλ(␈↓ λ[␈εα2␈↓ 	π␈εα+␈αλ1)␈↓ 	Q␈ελU␈↓ 	v␈ελV␈↓ 
→␈εα.␈↓ α␈εα(2)
␈βu␈↓ ∧k␈ε¬1␈↓ ¬
␈ε¬1␈↓ ε↔␈ε¬1␈↓ εp␈ε¬0␈↓ π*␈ε¬0␈↓ λ↓␈ε¬1␈↓ 	h␈ε¬0␈↓ 

␈ε¬0
␈β3␈↓ ↓H␈εαThis␈α
form␈α␈ula␈α
reduces␈α
the␈α∞problem␈α
of␈α
m␈α␈ultiplying␈α∞2␈↓ πo␈ελn␈↓ λ∧␈εα-bit␈α∞n␈α␈um␈α␈bers␈α
to␈α
three␈α
m␈α␈ul-
␈β↑␈↓ ↓H␈εαtiplications␈α
of␈↓ β.␈ελn␈↓ βD␈εα-bit␈α
n␈α␈um␈α␈bers,␈α∞namely␈↓ ε$␈ελU␈↓ εI␈ελV␈↓ εl␈εα,␈α
(␈↓ π∂␈ελU␈↓ π>␈ε⊗␈␈↓ πj␈ελU␈↓ λ⊂␈εα)(␈↓ λ(␈ελV␈↓ λS␈ε⊗␈␈↓ 	␈ελV␈↓ 	"␈εα),␈α∞and␈↓ 

␈ελU␈↓ 
2␈ελV␈↓ 
U␈εα,␈α
plus
␈βk␈↓ ε;␈ε¬1␈↓ ε]␈ε¬1␈↓ π&␈ε¬1␈↓ λ↓␈ε¬0␈↓ λ<␈ε¬0␈↓ 	∀␈ε¬1␈↓ 
$␈ε¬0␈↓ 
F␈ε¬0
␈β
	␈↓ ↓H␈εαsome␈αsimple␈αshifting␈αand␈αadding␈αoperations.
␈β
4␈↓ α␈εαForm␈α␈ula␈αε(2)␈απcan␈αεbe␈απused␈αεfor␈απdouble-precision␈αεm␈α␈ultiplication␈απwhen␈αεa␈αεquadruple-
␈β
`␈↓ ↓H␈εαprecision␈α	result␈α	is␈α
desired,␈α	and␈α
it␈α	is␈α	just␈α
a␈α	little␈α	faster␈α
than␈α	the␈α	traditional␈α	method
␈β∞␈↓ ↓H␈εαon␈α⊃man␈α␈y␈α⊃machines.␈α≥It␈α⊃is␈α∩more␈α⊃importan␈α␈t␈α⊃to␈α∩observ␈α␈e␈α⊃that␈α∩w␈α␈e␈α⊃can␈α∩use␈α⊃(2)␈α⊃to
␈β∞6␈↓ ↓H␈εαde|ne␈αa␈α
recursiv␈α␈e␈α
process␈αfor␈α
m␈α␈ultiplication␈α
that␈α
is␈αsigni|can␈α␈tly␈α
faster␈α
than␈αthe
␈β∞\␈↓ β@␈ε¬2
␈β∞a␈↓ ↓H␈εαfamiliar␈α
order-␈↓ β*␈ελn␈↓ βX␈εαmethod␈αwhen␈↓ ¬5␈ελn␈↓ ¬U␈εαis␈αlarge:␈αIf␈↓ ε{␈ελT␈↓ π∀␈εα(␈↓ π ␈ελn␈↓ π6␈εα)␈αis␈α
the␈α
time␈αrequired␈α
to␈α
perform
␈β∂␈↓ ↓H␈εαm␈α␈ultiplication␈αof␈↓ βY␈ελn␈↓ βn␈εα-bit␈αn␈α␈um␈α␈bers,␈αw␈α␈e␈αhav␈α␈e
␈β∂X␈↓ ¬→␈ελT␈↓ ¬2␈εα(2␈↓ ¬P␈ελn␈↓ ¬f␈εα)␈ε⊗␈α
∀␈εα␈α
3␈↓ ε<␈ελT␈↓ εU␈εα(␈↓ εa␈ελn␈↓ εw␈εα)␈αλ+␈↓ π7␈ελc␈↓ πE␈ελn␈↓ α␈εα(3)
␈β⊂$␈↓ ↓H␈εαfor␈αλsome␈α	constan␈α␈t␈↓ βa␈ελc␈↓ βo␈εα,␈α	since␈α	the␈α	righ␈α␈t-hand␈αλside␈α	of␈α	(2)␈αλuses␈α	just␈α	three␈αλm␈α␈ultiplications
␈β⊂O␈↓ ↓H␈εαplus␈αsome␈αadditions␈αand␈αshifts.␈αRelation␈α(3)␈αimplies␈αby␈αinduction␈αthat
␈β⊃∀␈↓ ¬␈εk␈↓ ¬␈␈εk␈↓ εS␈εk
␈β⊃~␈↓ ∧I␈ελT␈↓ ∧b␈εα(␈↓ ∧n␈εα2␈↓ ¬∞␈εα)␈ε⊗␈α
∀␈↓ ¬R␈ελc␈↓ ¬a␈εα(␈↓ ¬m␈εα3␈↓ ε∃␈ε⊗␈␈↓ εA␈εα2␈↓ εb␈εα),␈↓ πF␈ελk␈↓ πa␈ε⊗∃␈εα␈α
1,␈↓ α␈εα(4)
␈β∪(

␈β↓Y␈↓ ↓H␈εα276␈↓ α=␈ε∞A␈α␈RITH␈α␈METIC␈εα␈↓ 
b4.3.3
␈βα(␈↓ ↓H␈εαif␈α
w␈α␈e␈α
choose␈↓ β␈ελc␈↓ β#␈εαto␈α
be␈α
large␈α
enough␈α
so␈α
that␈αthis␈α
inequality␈α
is␈α
valid␈α
when␈↓ 
α␈ελk␈↓ 
≡␈εα=␈α
1;␈α
and
␈βαS␈↓ ↓H␈εαtherefore␈αw␈α␈e␈αhav␈α␈e
␈ββ≠␈↓ ¬/␈ε→d␈↓ ¬:␈ε¬lg␈↓ ¬U␈εn␈↓ ¬g␈ε→e␈↓ εc␈ε→d␈↓ εn␈ε¬lg␈↓ π	␈εn␈↓ π≠␈ε→e␈↓ πl␈ε→d␈↓ πw␈ε¬lg␈↓ λ∪␈εn␈↓ λ%␈ε→e
␈ββ!␈↓ βy␈ελT␈↓ ∧∩␈εα(␈↓ ∧≡␈ελn␈↓ ∧4␈εα)␈ε⊗␈α
∀␈↓ ∧x␈ελT␈↓ ¬⊃␈εα(␈↓ ¬≥␈εα2␈↓ ¬s␈εα)␈↓ ε	␈ε⊗∀␈↓ ε7␈ελc␈↓ εE␈εα(␈↓ εQ␈εα3␈↓ π.␈ε⊗␈␈↓ πZ␈εα2␈↓ λ0␈εα)
␈ββQ␈↓ πβ␈ε¬lg␈↓ π≡␈εn␈↓ λ≡␈ε¬lg␈↓ λ9␈ε¬3
␈ββW␈↓ ε	␈ε⊗∀␈εα␈α
3␈↓ εI␈ελc␈↓ ε←␈ε⊗↓␈↓ εq␈εα3␈↓ π:␈εα=␈α
3␈↓ πz␈ελc␈↓ λλ␈ελn␈↓ λG␈εα.␈↓ α␈εα(5)
␈β∧+␈↓ ↓H␈εαRelation␈α
(5)␈αsho␈α␈ws␈αthat␈αthe␈αrunning␈αtime␈α
for␈αm␈α␈ultiplication␈αcan␈αbe␈αreduced␈α
from
␈β∧Q␈↓ α;␈ε¬2␈↓ βr␈ε¬lg␈↓ ∧∞␈ε¬3␈↓ ∧j␈ε¬1.58␈α↓5
␈β∧V␈↓ ↓H␈εαorder␈↓ α%␈ελn␈↓ αT␈εαto␈αorder␈↓ β]␈ελn␈↓ ∧&␈ε⊗→␈↓ ∧T␈ελn␈↓ ¬+␈εα,␈αso␈αthe␈αrecursiv␈α␈e␈αmethod␈αis␈αm␈α␈uch␈αfaster␈αthan␈αthe
␈β¬α␈↓ ↓H␈εαtraditional␈αmethod␈αwhen␈↓ ∧Z␈ελn␈↓ ∧{␈εαis␈αlarge.
␈β¬-␈↓ α␈εα(A␈αsimilar␈αbut␈αmore␈αcomplicated␈αmethod␈αfor␈αdoing␈αm␈α␈ultiplication␈αwith␈αrun-
␈β¬S␈↓ βu␈ε¬lg␈↓ ∧⊂␈ε¬3
␈β¬X␈↓ ↓H␈εαning␈απtime␈απof␈αλorder␈↓ β←␈ελn␈↓ ∧&␈εαwas␈απapparen␈α␈tly␈αλ|rst␈απsuggested␈αλby␈απA.␈αλKaratsuba␈απin␈ε∂␈απDoklady
␈βεβ␈↓ ↓H␈ε∂Akad.␈α∞Nauk␈α∞SSSR␈ε∩␈α∂145␈εα␈α∞(1962),␈α∂293↑294␈α∞[English␈α∞translation␈α∂in␈ε∂␈α∞So␈α␈viet␈α∞Ph␈α␈ysics↑
␈βε.␈↓ ↓H␈ε∂Doklady␈ε∩␈α∂7␈εα␈α∂(1963),␈α⊂595↑596].␈α∃Curiously,␈α⊂this␈α∂idea␈α⊂does␈α∂not␈α∂seem␈α∂to␈α∂hav␈α␈e␈α∂been
␈βεZ␈↓ ↓H␈εαdisco␈α␈v␈α␈ered␈α∂before␈α⊂1962;␈α∩none␈α⊂of␈α∂the␈α⊂\calculating␈α⊂prodigies"␈α⊂who␈α⊂hav␈α␈e␈α∂become
␈βπ¬␈↓ ↓H␈εαfamous␈αfor␈αtheir␈αability␈αto␈αm␈α␈ultiply␈α
large␈αn␈α␈um␈α␈bers␈αmen␈α␈tally␈αhav␈α␈e␈αbeen␈αreported
␈βπ0␈↓ ↓H␈εαto␈α	use␈α	an␈α␈y␈α	such␈α
method,␈α
although␈α	form␈α␈ula␈α	(2)␈α	adapted␈α
to␈α	decimal␈α	notation␈α	w␈α␈ould
␈βπ[␈↓ ↓H␈εαseem␈αto␈α
lead␈α
to␈αa␈α
reasonably␈α
easy␈αway␈α
to␈α
m␈α␈ultiply␈αeigh␈α␈t-digit␈α
n␈α␈um␈α␈bers␈α
in␈αone's
␈βλε␈↓ ↓H␈εαhead.)
␈βλ2␈↓ α␈εαThe␈αrunning␈αtime␈α
can␈αbe␈αreduced␈αstill␈αfurther,␈α
in␈αthe␈αlimit␈αas␈↓ 	]␈ελn␈↓ 	}␈εαapproaches
␈βλ]␈↓ ↓H␈εαin|nity,␈α∞if␈α∞w␈α␈e␈α∞observ␈α␈e␈α∞that␈α∞the␈α∞method␈α∞just␈α∞used␈α∞is␈α∞essen␈α␈tially␈α∞the␈α
special␈α∞case
␈β	λ␈↓ ↓H␈ελr␈↓ ↓a␈εα=␈α
1␈αof␈αa␈αmore␈αgeneral␈αmethod␈αthat␈αyields
␈β	=␈↓ ∧L␈ε↓␈␈↓ ¬]␈ε↓↓
␈β	\␈↓ ∧2␈ελT␈↓ ∧Z␈εα(␈↓ ∧f␈ελr␈↓ ∧⎇␈εα+␈αλ1)␈↓ ¬G␈ελn␈↓ ¬u␈ε⊗∀␈εα␈α
(2␈↓ εA␈ελr␈↓ εY␈εα+␈αλ1)␈↓ π#␈ελT␈↓ π<␈εα(␈↓ πH␈ελn␈↓ π↑␈εα)␈αλ+␈↓ λ≡␈ελc␈↓ λ,␈ελn␈↓ α␈εα(6)
␈β
1␈↓ ↓H␈εαfor␈αan␈α␈y␈α|x␈α␈ed␈↓ β≤␈ελr␈↓ β+␈εα.␈αThis␈αmore␈αgeneral␈αmethod␈αcan␈αbe␈αobtained␈αas␈αfollo␈α␈ws:␈αLet
␈β¬␈↓ αP␈ελu␈↓ αp␈εα=␈α
(␈↓ β*␈ελu␈↓ ∧M␈εα.␈αε.␈αε.␈↓ ∧⎇␈ελu␈↓ ¬ ␈ελu␈↓ ¬C␈εα)␈↓ ε&␈εαand␈↓ π(␈ελv␈↓ πD␈εα=␈α
(␈↓ π}␈ελv␈↓ 	≥␈εα.␈αε.␈αε.␈↓ 	M␈ελv␈↓ 	k␈ελv␈↓ 
	␈εα)
␈β∩␈↓ ¬∩␈ε¬1␈↓ ¬5␈ε¬0␈↓ ¬O␈ε¬2␈↓ 	]␈ε¬1␈↓ 	{␈ε¬0␈↓ 
∃␈ε¬2
␈β∪␈↓ β>␈ε¬(␈↓ βH␈εr␈↓ βU␈ε¬+1␈α↓)␈↓ ∧
␈εn␈↓ ∧≤␈ε→␈␈ε¬1␈↓ λ∞␈ε¬(␈↓ λ_␈εr␈↓ λ%␈ε¬+1)␈↓ λZ␈εn␈↓ λl␈ε→␈␈ε¬1
␈βY␈↓ ↓H␈εαbe␈αbrok␈α␈en␈αin␈α␈to␈↓ β8␈ελr␈↓ βO␈εα+␈αλ1␈αpieces,
␈β'␈↓ β;␈εr␈↓ βH␈εn␈↓ ¬$␈εn␈↓ πe␈εr␈↓ πr␈εn␈↓ 	K␈εn
␈β.␈↓ α7␈ελu␈↓ αW␈εα=␈↓ β¬␈ελU␈↓ β)␈εα2␈↓ βb␈εα+␈↓ ∧∞␈ε⊗↓␈αε↓␈αε↓␈↓ ∧@␈εα+␈↓ ∧l␈ελU␈↓ ¬∩␈εα2␈↓ ¬>␈εα+␈↓ ¬j␈ελU␈↓ ε∂␈εα,␈↓ εg␈ελv␈↓ π∧␈εα=␈↓ π2␈ελV␈↓ πS␈εα2␈↓ λ␈εα+␈↓ λ8␈ε⊗↓␈αε↓␈αε↓␈↓ λj␈εα+␈↓ 	⊗␈ελV␈↓ 	9␈εα2␈↓ 	e␈εα+␈↓ 
⊃␈ελV␈↓ 
3␈εα,␈↓ α␈εα(7)
␈β;␈↓ β≤␈εr␈↓ ¬β␈ε¬1␈↓ ε↓␈ε¬0␈↓ πF␈εr␈↓ 	*␈ε¬1␈↓ 
%␈ε¬0
␈β
α␈↓ ↓H␈εαwhere␈αeach␈↓ βα␈ελU␈↓ β2␈εαand␈αeach␈↓ ∧J␈ελV␈↓ ∧w␈εαis␈αan␈↓ ¬M␈ελn␈↓ ¬c␈εα-bit␈αn␈α␈um␈α␈ber.␈αConsider␈αthe␈αpolynomials
␈β
∂␈↓ β→␈εj␈↓ ∧↑␈εj
␈β
P␈↓ β↑␈εr␈↓ λ_␈εr
␈β
V␈↓ α'␈ελU␈↓ αE␈εα(␈↓ αQ␈ελx␈↓ αc␈εα)␈α
=␈↓ β'␈ελU␈↓ βL␈ελx␈↓ βt␈εα+␈↓ ∧ ␈ε⊗↓␈αε↓␈αε↓␈↓ ∧R␈εα+␈↓ ∧}␈ελU␈↓ ¬#␈ελx␈↓ ¬>␈εα+␈↓ ¬j␈ελU␈↓ ε∂␈εα,␈↓ εg␈ελV␈↓ π↓␈εα(␈↓ π
␈ελx␈↓ π ␈εα)␈α
=␈↓ πd␈ελV␈↓ λ¬␈ελx␈↓ λ.␈εα+␈↓ λZ␈ε⊗↓␈αε↓␈αε↓␈↓ 	␈εα+␈↓ 	8␈ελV␈↓ 	Z␈ελx␈↓ 	u␈εα+␈↓ 
!␈ελV␈↓ 
C␈εα,␈↓ α␈εα(8)
␈β
d␈↓ β>␈εr␈↓ ¬∃␈ε¬1␈↓ ε↓␈ε¬0␈↓ πx␈εr␈↓ 	L␈ε¬1␈↓ 
5␈ε¬0
␈β∞*␈↓ ↓H␈εαand␈αlet
␈β∞P␈↓ ε[␈ε¬2␈↓ εi␈εr
␈β∞V␈↓ βB␈ελW␈↓ βf␈εα(␈↓ βr␈ελx␈↓ ∧¬␈εα)␈α
=␈↓ ∧I␈ελU␈↓ ∧g␈εα(␈↓ ∧s␈ελx␈↓ ¬¬␈εα)␈↓ ¬⊃␈ελV␈↓ ¬+␈εα(␈↓ ¬7␈ελx␈↓ ¬J␈εα)␈α
=␈↓ ε∞␈ελW␈↓ εH␈ελx␈↓ ε}␈εα+␈↓ π*␈ε⊗↓␈αε↓␈αε↓␈↓ π\␈εα+␈↓ λλ␈ελW␈↓ λ5␈ελx␈↓ λP␈εα+␈↓ λ|␈ελW␈↓ 	(␈εα.␈↓ α␈εα(9)
␈β∞c␈↓ ε,␈ε¬2␈↓ ε:␈εr␈↓ λ&␈ε¬1␈↓ 	~␈ε¬0
␈β∂∀␈↓ β6␈εn␈↓ ¬2␈εn␈↓ λ≥␈εn
␈β∂→␈↓ ↓H␈εαSince␈↓ α'␈ελu␈↓ αJ␈εα=␈↓ αz␈ελU␈↓ β_␈εα(␈↓ β$␈εα2␈↓ βH␈εα)␈α∞and␈↓ ∧)␈ελv␈↓ ∧I␈εα=␈↓ ∧z␈ελV␈↓ ¬∀␈εα(␈↓ ¬ ␈εα2␈↓ ¬D␈εα),␈α∞w␈α␈e␈α
hav␈α␈e␈↓ εu␈ελu␈↓ π␈ελv␈↓ π*␈εα=␈↓ π[␈ελW␈↓ π␈␈εα(␈↓ λ␈εα2␈↓ λ/␈εα),␈α∞so␈α
w␈α␈e␈α∞can␈α∞easily␈α
com-
␈β∂D␈↓ ↓H␈εαpute␈↓ α~␈ελu␈↓ α0␈ελv␈↓ αO␈εαif␈αw␈α␈e␈αkno␈α␈w␈αthe␈α
coe}cien␈α␈ts␈αof␈↓ ε#␈ελW␈↓ εG␈εα(␈↓ εS␈ελx␈↓ εf␈εα).␈α
The␈αproblem␈αis␈αto␈α
|nd␈αa␈αgood␈αway
␈β∂p␈↓ ↓H␈εαto␈α
compute␈α∞the␈α∞coe}cien␈α␈ts␈α∞of␈↓ ¬,␈ελW␈↓ ¬P␈εα(␈↓ ¬\␈ελx␈↓ ¬o␈εα)␈α
by␈α∞using␈α∞only␈α∞2␈↓ λα␈ελr␈↓ λ≠␈εα+␈α	1␈α∞m␈α␈ultiplications␈α∞of␈↓ ␈ελn␈↓  ␈εα-
␈β⊂≠␈↓ ↓H␈εαbit␈α∞n␈α␈um␈α␈bers␈α∂plus␈α∞some␈α∂further␈α∂operations␈α∞that␈α∂in␈α␈v␈α␈olv␈α␈e␈α∂only␈α∞an␈α∂ex␈α␈ecution␈α∞time
␈β⊂F␈↓ ↓H␈εαproportional␈αto␈↓ βB␈ελn␈↓ βW␈εα.␈αThis␈αcan␈αbe␈αdone␈αby␈αcomputing
␈β⊃~␈↓ ↓H␈ελU␈↓ ↓e␈εα(0)␈↓ α∂␈ελV␈↓ α)␈εα(0)␈α
=␈↓ β␈ελW␈↓ β/␈εα(0),␈↓ ∧
␈ελU␈↓ ∧+␈εα(1)␈↓ ∧U␈ελV␈↓ ∧o␈εα(1)␈α
=␈↓ ¬Q␈ελW␈↓ ¬u␈εα(1),␈↓ εS␈εα.␈αε.␈αε.␈↓ πβ␈εα,␈↓ π7␈ελU␈↓ πT␈εα(2␈↓ πr␈ελr␈↓ λα␈εα)␈↓ λ∞␈ελV␈↓ λ(␈εα(2␈↓ λF␈ελr␈↓ λV␈εα)␈α
=␈↓ 	~␈ελW␈↓ 	>␈εα(2␈↓ 	\␈ελr␈↓ 	l␈εα).␈↓ 
p␈εα(10)
␈β∪(

␈β↓Y␈↓ ↓H␈εα4.3.3␈ε∞␈↓ πλHO␈α␈W␈α	F␈α|AST␈αλCAN␈α	WE␈α	MU␈α␈L␈α}TIP␈α␈L␈α}Y␈εα␈α␈?␈↓ 
v␈εα277
␈βα(␈↓ ↓H␈εαThe␈απcoe}cien␈α␈ts␈απof␈απa␈αλpolynomial␈απof␈απdegree␈απ2␈↓ εS␈ελr␈↓ εj␈εαcan␈απbe␈αλwritten␈απas␈απa␈απlinear␈απcom␈α␈bination
␈βαS␈↓ ↓H␈εαof␈αλthe␈α	values␈αλof␈α	that␈α	polynomial␈αλat␈α	2␈↓ ¬v␈ελr␈↓ ε	␈εα+␈α∧1␈αλdistinct␈α	poin␈α␈ts;␈α
computing␈αλsuch␈α	a␈αλlinear
␈βα}␈↓ ↓H␈εαcom␈α␈bination␈α∂requires␈α∂an␈α∂ex␈α␈ecution␈α⊂time␈α∂at␈α∂most␈α∂proportional␈α⊂to␈↓ 	[␈ελn␈↓ 	q␈εα.␈α∃(Actually,
␈ββ*␈↓ ↓H␈εαthe␈α
products␈↓ β≤␈ελU␈↓ β:␈εα(␈↓ βF␈ελj␈↓ βV␈εα)␈↓ βb␈ελV␈↓ β|␈εα(␈↓ ∧λ␈ελj␈↓ ∧→␈εα)␈α
are␈α
not␈α∞strictly␈α
products␈α∞of␈↓ πo␈ελn␈↓ λ¬␈εα-bit␈α
n␈α␈um␈α␈bers,␈α∞but␈α
they␈α
are
␈ββU␈↓ ↓H␈εαproducts␈α
of␈α
at␈αmost␈α
(␈↓ ∧∂␈ελn␈↓ ∧*␈εα+␈↓ ∧T␈ελt␈↓ ∧a␈εα)-bit␈α
n␈α␈um␈α␈bers,␈αwhere␈↓ π.␈ελt␈↓ πF␈εαis␈α
a␈α
|x␈α␈ed␈αvalue␈α
depending␈α
on␈↓ ∪␈ελr␈↓ "␈εα.
␈β∧␈↓ ↓H␈εαIt␈α
is␈αeasy␈αto␈α
design␈αa␈αm␈α␈ultiplication␈αroutine␈α
for␈α(␈↓ π5␈ελn␈↓ πQ␈εα+␈↓ π{␈ελt␈↓ λλ␈εα)-bit␈αn␈α␈um␈α␈bers␈αthat␈α
requires
␈β∧+␈↓ ↓H␈εαonly␈↓ α∃␈ελT␈↓ α.␈εα(␈↓ α:␈ελn␈↓ αP␈εα)␈α¬+␈↓ β	␈ελc␈↓ β%␈ελn␈↓ βD␈εαoperations,␈α
where␈↓ ¬`␈ελT␈↓ ¬y␈εα(␈↓ ε¬␈ελn␈↓ ε≠␈εα)␈α	is␈α
the␈α	n␈α␈um␈α␈ber␈α
of␈α	operations␈α
needed␈α	for␈↓ ␈ελn␈↓  ␈εα-
␈β∧9␈↓ β⊗␈ε¬1
␈β∧V␈↓ ↓H␈εαbit␈αm␈α␈ultiplications,␈αsince␈αt␈α␈w␈α␈o␈αproducts␈αof␈↓ εX␈ελt␈↓ εe␈εα-bit␈αby␈↓ π]␈ελn␈↓ πs␈εα-bit␈αn␈α␈um␈α␈bers␈αcan␈αbe␈αdone␈αin
␈β¬α␈↓ ↓H␈ελc␈↓ ↓c␈ελn␈↓ α¬␈εαoperations␈αwhen␈↓ ∧∩␈ελt␈↓ ∧+␈εαis␈α|x␈α␈ed.)␈α
Therefore␈αw␈α␈e␈αobtain␈α
a␈αmethod␈αof␈αm␈α␈ultiplication
␈β¬∂␈↓ ↓U␈ε¬2
␈β¬-␈↓ ↓H␈εαsatisfying␈α(6).
␈β¬R␈↓ εF␈ε¬lo␈α↓g␈↓ π→␈ε¬(␈α␈2␈↓ π1␈εr␈↓ π>␈ε¬+1)␈↓ λ\␈ε¬1+␈↓ 	π␈ε¬lo␈α↓g␈↓ 	↑␈ε¬2
␈β¬X␈↓ α␈εαRelation␈α(6)␈αimplies␈αthat␈↓ ¬⊗␈ελT␈↓ ¬0␈εα(␈↓ ¬<␈ελn␈↓ ¬Q␈εα)␈ε⊗␈α
∀␈↓ ε∃␈ελc␈↓ ε1␈ελn␈↓ π⎇␈εα<␈↓ λ+␈ελc␈↓ λF␈ελn␈↓ 	m␈εα,␈αif␈αw␈α␈e␈α
argue
␈β¬↑␈↓ εk␈ε
r␈↓ εw␈επ+␈α␈1␈↓ 	,␈ε
r␈↓ 	8␈επ+␈α␈1
␈β¬e␈↓ ε"␈ε¬3␈↓ λ8␈ε¬3
␈βεβ␈↓ ↓H␈εαas␈αin␈αthe␈αderivation␈αof␈α(5),␈αso␈αw␈α␈e␈αhav␈α␈e␈αno␈α␈w␈αpro␈α␈v␈α␈ed␈αthe␈αfollo␈α␈wing␈αresult:
␈βε:␈↓ ↓H␈ε∩Theorem␈αA.␈ε∂␈α→Giv␈α␈en␈↓ ∧¬␈ελ∂␈↓ ∧≥␈εα>␈α
0␈ε∂,␈αthere␈αexists␈αa␈αm␈α␈ultiplication␈αalgorithm␈αsuch␈αthat␈αthe
␈βεe␈↓ ↓H␈ε∂n␈α␈um␈α␈ber␈α⊂of␈α⊂elemen␈α␈tary␈α⊂operations␈↓ ¬k␈ελT␈↓ ε∧␈εα(␈↓ ε⊂␈ελn␈↓ ε&␈εα)␈ε∂␈α⊂needed␈α⊂to␈α⊂m␈α␈ultiply␈α⊂t␈α␈w␈α␈o␈↓ 	K␈ελn␈↓ 	`␈ε∂-bit␈α⊂n␈α␈um␈α␈bers
␈βπ⊂␈↓ ↓H␈ε∂satis|es
␈βπ5␈↓ ε}␈ε¬1+␈↓ π)␈ε∂
␈βπ;␈↓ ¬5␈ελT␈↓ ¬N␈εα(␈↓ ¬Z␈ελn␈↓ ¬p␈εα)␈α
<␈↓ ε4␈ελc␈↓ εB␈εα(␈↓ εN␈ελ∂␈↓ ε\␈εα)␈↓ εh␈ελn␈↓ π5␈εα,␈↓ 
p␈εα(11)
␈βπu␈↓ ↓H␈ε∂for␈αsome␈αconstan␈α␈t␈↓ βk␈ελc␈↓ βy␈εα(␈↓ ∧¬␈ελ∂␈↓ ∧∪␈εα)␈ε∂␈αindependen␈α␈t␈αof␈↓ ε ␈ελn␈↓ ε5␈ε∂.
␈βπz␈↓ εg␈∧πzεg≠∂
␈βλ+␈↓ α␈εαThis␈α⊃theorem␈α⊂is␈α⊃still␈α⊃not␈α⊂the␈α⊃result␈α⊂w␈α␈e␈α⊃are␈α⊃after.␈α~It␈α⊂is␈α⊃unsatisfactory␈α⊂for
␈βλV␈↓ ↓H␈εαpractical␈α
purposes␈αin␈α
that␈αthe␈α
method␈αbecomes␈α
m␈α␈uch␈αmore␈α
complicated␈αas␈↓ 
T␈ελ∂␈↓ 
l␈ε⊗!␈εα␈α
0
␈β	α␈↓ ↓H␈εα(and␈α
therefore␈α∞as␈↓ βb␈ελr␈↓ β}␈ε⊗!␈α
1␈εα),␈α∞causing␈↓ ¬x␈ελc␈↓ εε␈εα(␈↓ ε∩␈ελ∂␈↓ ε ␈εα)␈α∞to␈α
gro␈α␈w␈α∞so␈α
rapidly␈α∞that␈α
extremely␈α
h␈α␈uge
␈β	-␈↓ ↓H␈εαvalues␈α
of␈↓ α\␈ελn␈↓ α|␈εαare␈α
needed␈α
before␈α
w␈α␈e␈α
hav␈α␈e␈α
an␈α␈y␈α
signi|can␈α␈t␈α
impro␈α␈v␈α␈emen␈α␈t␈α
o␈α␈v␈α␈er␈α
(5).␈αAnd
␈β	X␈↓ ↓H␈εαit␈αis␈αunsatisfactory␈α
for␈αtheoretical␈αpurposes␈αbecause␈α
it␈αdoes␈αnot␈α
mak␈α␈e␈αuse␈αof␈αthe
␈β
β␈↓ ↓H␈εαfull␈α	po␈α␈w␈α␈er␈α	of␈α
the␈α	polynomial␈α
method␈α	on␈α	which␈α
it␈α	is␈α
based.␈αWe␈α	can␈α
obtain␈α	a␈α	better
␈β
.␈↓ ↓H␈εαresult␈α	if␈α	w␈α␈e␈α	let␈↓ β+␈ελr␈↓ βD␈ε∂vary␈εα␈α	with␈↓ ∧d␈ελn␈↓ ∧z␈εα,␈α	choosing␈α	larger␈α	and␈α
larger␈α	values␈α	of␈↓ 	8␈ελr␈↓ 	Q␈εαas␈↓ 	z␈ελn␈↓ 
_␈εαincreases.
␈β
Z␈↓ ↓H␈εαThis␈α	idea␈α
is␈α
due␈α
to␈α
A.␈α
L.␈α	Toom␈α
[␈ε∂Doklady␈α
Akad.␈α
Nauk␈α
SSSR␈ε∩␈α	150␈εα␈α
(1963),␈α
496↑498,
␈β¬␈↓ ↓H␈εαEnglish␈αλtranslation␈αλin␈ε∂␈αλSo␈α␈viet␈α	Mathematics␈ε∩␈αλ3␈εα␈αλ(1963),␈α	714↑716],␈α	who␈α	used␈αλit␈αλto␈αλsho␈α␈w
␈β0␈↓ ↓H␈εαthat␈α
computer␈α
circuitry␈α
for␈α
m␈α␈ultiplication␈α
of␈↓ π↔␈ελn␈↓ π,␈εα-bit␈α
n␈α␈um␈α␈bers␈α
can␈α
be␈α
constructed
␈β[␈↓ ↓H␈εαin␈α␈v␈α␈olving␈αa␈α
fairly␈α
small␈α
n␈α␈um␈α␈ber␈α
of␈α
componen␈α␈ts␈αas␈↓ πc␈ελn␈↓ λε␈εαgro␈α␈ws.␈α∞S.␈α
A.␈α
Cook␈α
[␈ε∂On␈αthe
␈βε␈↓ ↓H␈ε∂minim␈α␈um␈α	computation␈α
time␈α
of␈α	functions␈εα␈α
(Thesis,␈α
Harvard␈α
Univ␈α␈ersity,␈α
1966),␈α
51↑
␈β2␈↓ ↓H␈εα77]␈α	later␈α
sho␈α␈w␈α␈ed␈α
ho␈α␈w␈α	Toom's␈α
method␈α
can␈α	be␈α
adapted␈α	to␈α
fast␈α
computer␈α	programs.
␈β]␈↓ α␈εαBefore␈αλw␈α␈e␈α	discuss␈αλthe␈αλToom↑Cook␈α	algorithm␈αλan␈α␈y␈αλfurther,␈α	let␈α	us␈αλstudy␈αλa␈αλsmall
␈β
λ␈↓ ↓H␈εαexample␈α
of␈α∞the␈α
transition␈α
from␈↓ ¬?␈ελU␈↓ ¬]␈εα(␈↓ ¬i␈ελx␈↓ ¬{␈εα)␈α∞and␈↓ ε\␈ελV␈↓ εv␈εα(␈↓ πα␈ελx␈↓ π∃␈εα)␈α
to␈α∞the␈α
coe}cien␈α␈ts␈α∞of␈↓ 	⎇␈ελW␈↓ 
!␈εα(␈↓ 
-␈ελx␈↓ 
@␈εα).␈α⊂This
␈β
3␈↓ ↓H␈εαexample␈α∞will␈α∂not␈α∞demonstrate␈α∂the␈α∞e}ciency␈α∂of␈α∂the␈α∞method,␈α∂since␈α∂the␈α∞n␈α␈um␈α␈bers
␈β
↑␈↓ ↓H␈εαare␈αtoo␈αsmall,␈αbut␈αit␈αpoin␈α␈ts␈αout␈α
some␈αuseful␈αsimpli|cations␈αthat␈αw␈α␈e␈αcan␈αmak␈α␈e␈αin
␈β∞
␈↓ ↓H␈εαthe␈α
general␈αcase.␈α∂Suppose␈α
that␈α
w␈α␈e␈α
wan␈α␈t␈α
to␈αm␈α␈ultiply␈↓ λε␈ελu␈↓ λ'␈εα=␈α1234␈α
times␈↓ 

␈ελv␈↓ 
+␈εα=␈α2341;
␈β∞5␈↓ ↓H␈εαin␈α∞binary␈α∞notation␈α∞this␈α∞is␈↓ ∧i␈ελu␈↓ ¬␈εα=␈α
(0100␈α
1101␈α	0010␈↓ π4␈εα)␈↓ π]␈εαtimes␈↓ λ?␈ελv␈↓ λ`␈εα=␈α
(1001␈α
0010␈α	0101␈↓ λ␈εα)␈↓ "␈εα.
␈β∞B␈↓ π@␈ε¬2␈↓ ∀␈ε¬2
␈β∞`␈↓ ↓H␈εαLet␈↓ α
␈ελr␈↓ α#␈εα=␈α
2;␈αthe␈αpolynomials␈↓ ∧␈␈ελU␈↓ ¬≥␈εα(␈↓ ¬)␈ελx␈↓ ¬<␈εα),␈↓ ¬↑␈ελV␈↓ ¬x␈εα(␈↓ ε∧␈ελx␈↓ ε↔␈εα)␈αin␈α(8)␈αare
␈β∂→␈↓ ∧U␈ε¬2␈↓ λ
␈ε¬2
␈β∂∨␈↓ β/␈ελU␈↓ βM␈εα(␈↓ βY␈ελx␈↓ βl␈εα)␈α
=␈α
4␈↓ ∧B␈ελx␈↓ ∧k␈εα+␈αλ13␈↓ ¬;␈ελx␈↓ ¬V␈εα+␈αλ2,␈↓ εl␈ελV␈↓ πε␈εα(␈↓ π∩␈ελx␈↓ π%␈εα)␈α
=␈α
9␈↓ π{␈ελx␈↓ λ$␈εα+␈αλ2␈↓ λb␈ελx␈↓ λ⎇␈εα+␈αλ5.
␈β∂↑␈↓ ↓H␈εαHence␈αw␈α␈e␈α|nd,␈αfor␈↓ βq␈ελW␈↓ ∧∃␈εα(␈↓ ∧!␈ελx␈↓ ∧3␈εα)␈α
=␈↓ ∧w␈ελU␈↓ ¬∃␈εα(␈↓ ¬!␈ελx␈↓ ¬4␈εα)␈↓ ¬@␈ελV␈↓ ¬Z␈εα(␈↓ ¬f␈ελx␈↓ ¬y␈εα),
␈β⊂→␈↓ ↓N␈ελU␈↓ ↓l␈εα(0)␈α
=␈↓ α`␈εα2,␈↓ β6␈ελU␈↓ βT␈εα(1)␈α
=␈↓ ∧H␈εα19,␈↓ ¬0␈ελU␈↓ ¬N␈εα(2)␈α
=␈↓ εT␈εα44,␈↓ π=␈ελU␈↓ πZ␈εα(3)␈α
=␈↓ λ`␈εα77,␈↓ 	I␈ελU␈↓ 	f␈εα(4)␈α
=␈↓ 
l␈εα118;
␈β⊂D␈↓ ↓R␈ελV␈↓ ↓l␈εα(0)␈α
=␈↓ α`␈εα5,␈↓ β:␈ελV␈↓ βT␈εα(1)␈α
=␈↓ ∧H␈εα16,␈↓ ¬4␈ελV␈↓ ¬N␈εα(2)␈α
=␈↓ εT␈εα45,␈↓ π@␈ελV␈↓ πZ␈εα(3)␈α
=␈↓ λ`␈εα92,␈↓ 	L␈ελV␈↓ 	f␈εα(4)␈α
=␈↓ 
l␈εα157;
␈β⊂o␈↓ ↓H␈ελW␈↓ ↓l␈εα(0)␈α
=␈↓ αN␈εα10,␈↓ β0␈ελW␈↓ βT␈εα(1)␈α
=␈↓ ∧6␈εα304,␈↓ ¬*␈ελW␈↓ ¬N␈εα(2)␈α
=␈↓ ε0␈εα1980,␈↓ π6␈ελW␈↓ πZ␈εα(3)␈α
=␈↓ λ<␈εα7084,␈↓ 	B␈ελW␈↓ 	f␈εα(4)␈α
=␈↓ 
H␈εα18526.
␈β⊃~␈↓ 
p␈εα(12)
␈β∪(

␈β↓Y␈↓ ↓H␈εα278␈↓ α=␈ε∞A␈α␈RITH␈α␈METIC␈εα␈↓ 
b4.3.3
␈βα&␈↓ ↓H␈εαOur␈αλjob␈α	no␈α␈w␈α	is␈α	to␈α	compute␈αλthe␈α	|v␈α␈e␈α	coe}cien␈α␈ts␈α	of␈↓ π=␈ελW␈↓ πa␈εα(␈↓ πm␈ελx␈↓ π␈␈εα)␈α	from␈α	the␈α	latter␈α	|v␈α␈e␈αλvalues.
␈βαQ␈↓ α␈εαThere␈α⊃is␈α∩an␈α⊃attractiv␈α␈e␈α∩little␈α⊃algorithm␈α∩that␈α⊃can␈α∩be␈α⊃used␈α∩to␈α⊃compute␈α⊃the
␈βαx␈↓ π␈εm␈↓ π&␈ε→␈␈ε¬1
␈βα⎇␈↓ ↓H␈εαcoe}cien␈α␈ts␈α∞of␈α∞a␈α∞polynomial␈↓ ¬λ␈ελW␈↓ ¬,␈εα(␈↓ ¬8␈ελx␈↓ ¬K␈εα)␈α
=␈↓ ε⊗␈ελW␈↓ εy␈ελx␈↓ π[␈εα+␈↓ λλ␈ε⊗↓␈αε↓␈αε↓␈↓ λ<␈εα+␈↓ λi␈ελW␈↓ 	⊗␈ελx␈↓ 	2␈εα+␈↓ 	←␈ελW␈↓ 
~␈εαwhen␈α∞the
␈ββ
␈↓ ε4␈εm␈↓ εN␈ε→␈␈ε¬1␈↓ 	π␈ε¬1␈↓ 	⎇␈ε¬0
␈ββ(␈↓ ↓H␈εαvalues␈↓ α6␈ελW␈↓ αZ␈εα(0),␈↓ β∀␈ελW␈↓ β8␈εα(1),␈↓ βr␈εα.␈αε.␈αε.␈↓ ∧"␈εα,␈↓ ∧2␈ελW␈↓ ∧U␈εα(␈↓ ∧a␈ελm␈↓ ¬	␈ε⊗␈␈εα␈αλ1)␈αare␈αgiv␈α␈en:␈αLet␈αus␈α|rst␈αwrite
␈ββp␈↓ ¬␈εm␈↓ ¬%␈ε→␈␈ε¬1␈↓ εl␈εm␈↓ πε␈ε→␈␈ε¬2␈↓ λp␈ε¬1
␈ββv␈↓ β≥␈ελW␈↓ βA␈εα(␈↓ βM␈ελx␈↓ β`␈εα)␈α
=␈↓ ∧$␈ελ∩␈↓ ∧y␈ελx␈↓ ¬X␈εα+␈↓ ε∧␈ελ∩␈↓ εY␈ελx␈↓ π9␈εα+␈↓ πe␈ε⊗↓␈αε↓␈αε↓␈↓ λ↔␈εα+␈↓ λC␈ελ∩␈↓ λ]␈ελx␈↓ 	π␈εα+␈↓ 	3␈ελ∩␈↓ 	M␈εα,␈↓ 
p␈εα(13)
␈β∧β␈↓ ∧0␈εm␈↓ ∧J␈ε→␈␈ε¬1␈↓ ε⊂␈εm␈↓ ε*␈ε→␈␈ε¬2␈↓ λO␈ε¬1␈↓ 	?␈ε¬0
␈β∧¬␈↓ ¬␈∧∧¬¬αF␈↓ εl␈∧∧¬εlαF␈↓ λp␈∧∧¬λpα∂
␈β∧?␈↓ αC␈εk
␈β∧D␈↓ ↓H␈εαwhere␈↓ α0␈ελx␈↓ α]␈εα=␈↓ β␈ελx␈↓ β∨␈εα(␈↓ β+␈ελx␈↓ βF␈ε⊗␈␈εα␈α	1)␈↓ ∧↔␈εα.␈αε.␈αε.␈↓ ∧G␈εα(␈↓ ∧S␈ελx␈↓ ∧n␈ε⊗␈␈↓ ¬≠␈ελk␈↓ ¬5␈εα+␈α	1),␈α
and␈αwhere␈α
the␈α
coe}cien␈α␈ts␈↓ 	;␈ελ∩␈↓ 	a␈εαare␈αunkno␈α␈wn
␈β∧Q␈↓ 	G␈εj
␈β∧T␈↓ αC␈∧∧TαCα∂
␈β∧o␈↓ ↓H␈εαas␈αw␈α␈ell␈αas␈αthe␈↓ β'␈ελW␈↓ βR␈εα.␈αNo␈α␈w
␈β∧|␈↓ βE␈εj
␈β¬7␈↓ ε'␈εm␈↓ εA␈ε→␈␈ε¬2␈↓ 	ε␈εm␈↓ 	 ␈ε→␈␈ε¬␈α␈3
␈β¬=␈↓ ↓s␈ελW␈↓ α↔␈εα(␈↓ α#␈ελx␈↓ α>␈εα+␈αλ1)␈ε⊗␈αλ␈␈↓ β<␈ελW␈↓ β`␈εα(␈↓ βl␈ελx␈↓ β}␈εα)␈α
=␈α
(␈↓ ∧N␈ελm␈↓ ∧v␈ε⊗␈␈εα␈αλ1)␈↓ ¬@␈ελ∩␈↓ ε∃␈ελx␈↓ εu␈εα+␈αλ(␈↓ π-␈ελm␈↓ πT␈ε⊗␈␈εα␈αλ2)␈↓ λ≡␈ελ∩␈↓ λs␈ελx␈↓ 	S␈εα+␈↓ 	␈␈ε⊗↓␈αε↓␈αε↓␈↓ 
1␈εα+␈↓ 
]␈ελ∩␈↓ 
w␈εα,
␈β¬J␈↓ ¬L␈εm␈↓ ¬f␈ε→␈␈ε¬1␈↓ λ*␈εm␈↓ λD␈ε→␈␈ε¬2␈↓ 
i␈ε¬1
␈β¬L␈↓ ε'␈∧¬Lε'αF␈↓ 	ε␈∧¬L	εαF
␈βε␈↓ ↓H␈εαand␈αby␈αinduction␈αw␈α␈e␈α|nd␈αthat␈αfor␈αall␈↓ ε↔␈ελk␈↓ ε2␈ε⊗∃␈εα␈α
0
␈βεR␈↓ ↓⎇␈ε↓ ␈↓ 
C␈ε↓!
␈βε]␈↓ βQ␈ε↓∩␈↓ βy␈ε↓∪␈↓ ε¬␈ε↓∩␈↓ ε-␈ε↓∪
␈βε`␈↓ ↓c␈εα1␈↓ βg␈ελk␈↓ ε≤␈ελk
␈βεq␈↓ 	f␈εk
␈βεw␈↓ α∀␈ελW␈↓ α8␈εα(␈↓ αD␈ελx␈↓ αY␈εα+␈↓ α␈␈ελk␈↓ β⊃␈εα)␈ε⊗␈αλ␈␈↓ ∧∂␈ελW␈↓ ∧3␈εα(␈↓ ∧?␈ελx␈↓ ∧T␈εα+␈↓ ∧z␈ελk␈↓ ¬
␈ε⊗␈␈εα␈αα1)␈αλ+␈↓ εC␈ελW␈↓ εg␈εα(␈↓ εs␈ελx␈↓ πλ␈εα+␈↓ π.␈ελk␈↓ πB␈ε⊗␈␈εα␈αα2)␈ε⊗␈αλ␈␈↓ λ:␈ε⊗↓␈αε↓␈αε↓␈↓ λl␈εα+␈αλ(␈ε⊗␈␈εα1␈↓ 	Z␈εα)␈↓ 	u␈ελW␈↓ 
_␈εα(␈↓ 
$␈ελx␈↓ 
7␈εα)
␈βππ␈↓ ↓↑␈∧ππ↓↑α≤
␈βπ∂␈↓ ↓↑␈ελk␈↓ ↓o␈εα!␈↓ βg␈εα1␈↓ ε≠␈εα2
␈βπP␈↓ α>␈ε↓∩␈↓ β9␈ε↓∪␈↓ ¬a␈ε↓∩␈↓ ε]␈ε↓∪␈↓ 	c␈ε↓∩␈↓ 
␈ε↓∪
␈βπS␈↓ αT␈ελm␈↓ α{␈ε⊗␈␈εα␈αλ1␈↓ ¬w␈ελm␈↓ ε∨␈ε⊗␈␈εα␈αλ2␈↓ 	y␈ελk
␈βπd␈↓ ∧=␈εm␈↓ ∧W␈ε→␈␈ε¬1␈ε→␈␈↓ ¬∨␈εk␈↓ π`␈εm␈↓ πz␈ε→␈␈ε¬2␈ε→␈α↓␈␈↓ λB␈εk
␈βπj␈↓ α⊂␈εα=␈↓ βU␈ελ∩␈↓ ∧*␈ελx␈↓ ¬5␈εα+␈↓ εy␈ελ∩␈↓ πN␈ελx␈↓ λY␈εα+␈↓ 	¬␈ε⊗↓␈αε↓␈αε↓␈↓ 	7␈εα+␈↓ 
'␈ελ∩␈↓ 
A␈εα.␈α%(14)
␈βπx␈↓ βa␈εm␈↓ β{␈ε→␈␈ε¬1␈↓ π¬␈εm␈↓ π∨␈ε→␈␈ε¬2␈↓ 
3␈εk
␈βπy␈↓ ∧=␈∧πy∧=αq␈↓ π`␈∧πyπ`αq
␈βλβ␈↓ α}␈ελk␈↓ ε!␈ελk␈↓ 	y␈ελk
␈βλL␈↓ π%␈εk
␈βλQ␈↓ ↓H␈εαDenoting␈αthe␈αleft-hand␈αside␈αof␈α(14)␈αby␈α(1/␈↓ εZ␈ελk␈↓ εk␈εα!)␈↓ ππ␈εα↓␈↓ π:␈ελW␈↓ π↑␈εα(␈↓ πj␈ελx␈↓ π⎇␈εα),␈αw␈α␈e␈αsee␈αthat
␈β	≠␈↓ ∧:␈ε↓∩␈↓ 
≠␈ε↓∪
␈β	≡␈↓ αL␈εα1␈↓ ∧$␈εα1␈↓ ¬λ␈εα1␈↓ λ*␈εα1
␈β	/␈↓ β¬␈εk␈↓ ¬p␈εk␈↓ ¬␈␈ε→␈␈ε¬␈α␈1␈↓ 	∩␈εk␈↓ 	!␈ε→␈␈ε¬1
␈β	5␈↓ αg␈εα↓␈↓ β~␈ελW␈↓ β>␈εα(␈↓ βJ␈ελx␈↓ β\␈εα)␈α
=␈↓ ¬R␈εα↓␈↓ ε*␈ελW␈↓ εN␈εα(␈↓ εZ␈ελx␈↓ εu␈εα+␈αλ1)␈ε⊗␈αλ␈␈↓ λt␈εα↓␈↓ 	L␈ελW␈↓ 	p␈εα(␈↓ 	|␈ελx␈↓ 
∂␈εα)
␈β	E␈↓ αG␈∧	EαGα≤␈↓ ∧$␈∧	E∧$α∩␈↓ ∧T␈∧	E∧Tαz␈↓ πw␈∧	Eπwαz
␈β	M␈↓ αG␈ελk␈↓ αY␈εα!␈↓ ∧$␈ελk␈↓ ∧T␈εα(␈↓ ∧`␈ελk␈↓ ∧z␈ε⊗␈␈εα␈αλ1)!␈↓ πw␈εα(␈↓ λβ␈ελk␈↓ λ≤␈ε⊗␈␈εα␈αλ1)!
␈β
↔␈↓ β
␈εk
␈β
≤␈↓ ↓H␈εαand␈α∂(1/␈↓ αA␈ελk␈↓ αS␈εα!)␈↓ αo␈εα↓␈↓ β!␈ελW␈↓ βE␈εα(0)␈α⊂=␈↓ ∧2␈ελ∩␈↓ ∧M␈εα.␈α⊗So␈α∂the␈α⊂coe}cien␈α␈ts␈↓ π≤␈ελ∩␈↓ πE␈εαcan␈α∂be␈α∂evaluated␈α⊂using␈α∂a␈α∂v␈α␈ery
␈β
)␈↓ ∧>␈εk␈↓ π(␈εj
␈β
G␈↓ ↓H␈εαsimple␈αmethod,␈αillustrated␈αhere␈αfor␈αthe␈αpolynomial␈↓ πn␈ελW␈↓ λ∩␈εα(␈↓ λ≡␈ελx␈↓ λ0␈εα)␈αin␈α(12):
␈β⊂␈↓ ↓}␈εα10
␈β)␈↓ β⊃␈εα294
␈βB␈↓ ↓l␈εα304␈↓ ∧$␈εα1382/2␈α
=␈α
691
␈β[␈↓ α␈␈εα1676␈↓ εJ␈εα1023/3␈α
=␈α
341
␈βt␈↓ ↓Z␈εα1980␈↓ ∧∩␈εα3428/2␈α
=␈α
1714␈↓ λo␈εα144/4␈α
=␈α
36␈↓ 
p␈εα(15)
␈β∞␈↓ α␈␈εα5104␈↓ εJ␈εα1455/3␈α
=␈α
485
␈β'␈↓ ↓Z␈εα7084␈↓ ∧∩␈εα6338/2␈α
=␈α
3169
␈β@␈↓ αm␈εα11442
␈βY␈↓ ↓H␈εα18526
␈β
'␈↓ ↓H␈εαThe␈α	leftmost␈α	column␈α
of␈α	this␈α	tableau␈α	is␈α
a␈α	listing␈α	of␈α
the␈α	giv␈α␈en␈α	values␈α	of␈↓ 	s␈ελW␈↓ 
↔␈εα(0),␈↓ 
T␈ελW␈↓ 
x␈εα(1),
␈β
R␈↓ ↓H␈εα.␈αε.␈αε.␈↓ ↓x␈εα,␈↓ α⊃␈ελW␈↓ α4␈εα(4);␈α⊂the␈↓ β8␈ελk␈↓ βJ␈εαth␈α∞succeeding␈α∂column␈α∞is␈α∞obtained␈α∂by␈α∞computing␈α∞the␈α∞di{erence
␈β
⎇␈↓ ↓H␈εαbet␈α␈w␈α␈een␈α∩successiv␈α␈e␈α∩values␈α∪of␈α∩the␈α∩preceding␈α∩column␈α∪and␈α∩dividing␈α∩by␈↓ 
4␈ελk␈↓ 
F␈εα.␈α≡The
␈β∞)␈↓ ↓H␈εαcoe}cien␈α␈ts␈↓ α⎇␈ελ∩␈↓ β#␈εαappear␈α
at␈α
the␈αtop␈α
of␈α
the␈αcolumns,␈α
so␈α
that␈↓ λA␈ελ∩␈↓ λg␈εα=␈α10,␈↓ 	Q␈ελ∩␈↓ 	v␈εα=␈α294,␈↓ 
r␈εα.␈αε.␈αε.␈↓ "␈εα,
␈β∞6␈↓ β	␈εj␈↓ λM␈ε¬0␈↓ 	]␈ε¬1
␈β∞T␈↓ ↓H␈ελ∩␈↓ ↓l␈εα=␈α
36,␈αand␈αw␈α␈e␈αhav␈α␈e
␈β∞a␈↓ ↓T␈ε¬4
␈β∂≠␈↓ β\␈ε¬4␈↓ ∧g␈ε¬3␈↓ ¬r␈ε¬2␈↓ ε⎇␈ε¬1
␈β∂!␈↓ α≡␈ελW␈↓ αB␈εα(␈↓ αN␈ελx␈↓ αa␈εα)␈↓ αw␈εα=␈α
36␈↓ βI␈ελx␈↓ βr␈εα+␈αλ341␈↓ ∧T␈ελx␈↓ ∧⎇␈εα+␈αλ691␈↓ ¬←␈ελx␈↓ ελ␈εα+␈αλ294␈↓ εj␈ελx␈↓ π∀␈εα+␈αλ10
␈β∂,␈↓ β%␈ε↓␈␈↓ 	↔␈ε↓↓
␈β∂0␈↓ β\␈∧∂0β\α∂␈↓ ∧g␈∧∂0∧gα∂␈↓ ¬r␈∧∂0¬rα∂␈↓ ε⎇␈∧∂0ε⎇α∂
␈β∂L␈↓ αw␈εα=␈↓ β3␈εα((36(␈↓ β{␈ελx␈↓ ∧⊗␈ε⊗␈␈εα␈αλ3)␈αλ+␈αλ341)(␈↓ ¬b␈ελx␈↓ ¬|␈ε⊗␈␈εα␈αλ2)␈αλ+␈αλ691)(␈↓ πH␈ελx␈↓ πc␈ε⊗␈␈εα␈αλ1)␈αλ+␈αλ294␈↓ 	%␈ελx␈↓ 	@␈εα+␈αλ10.␈↓ 
p␈εα(16)
␈β⊂~␈↓ ↓H␈εαIn␈αgeneral,␈αw␈α␈e␈αcan␈αwrite
␈β⊂H␈↓ αr␈ε↓␈
␈β⊂h␈↓ ↓l␈ελW␈↓ α⊂␈εα(␈↓ α≤␈ελx␈↓ α.␈εα)␈α
=␈↓ βε␈εα.␈αε.␈αε.␈↓ β6␈εα((␈↓ βN␈ελ∩␈↓ ∧∨␈εα(␈↓ ∧+␈ελx␈↓ ∧@␈ε⊗␈␈↓ ∧f␈ελm␈↓ ¬λ␈εα+␈αα2)␈αλ+␈↓ ε␈ελ∩␈↓ εQ␈εα)(␈↓ εi␈ελx␈↓ ε}␈ε⊗␈␈↓ π$␈ελm␈↓ πF␈εα+␈αα3)␈αλ+␈↓ λ>␈ελ∩␈↓ 	∂␈εα)(␈↓ 	'␈ελx␈↓ 	;␈ε⊗␈␈↓ 	a␈ελm␈↓ 
β␈εα+␈αα4)
␈β⊂u␈↓ βZ␈εm␈↓ βt␈ε→␈␈ε¬1␈↓ ε␈εm␈↓ ε&␈ε→␈␈ε¬2␈↓ λJ␈εm␈↓ λc␈ε→␈␈ε¬3
␈β⊂w␈↓ 
∂␈ε↓↓
␈β⊃↔␈↓ λk␈εα+␈↓ 	↔␈ε⊗↓␈αε↓␈αε↓␈↓ 	I␈εα+␈↓ 	u␈ελ∩␈↓ 
≥␈ελx␈↓ 
8␈εα+␈↓ 
d␈ελ∩␈↓ 
}␈εα,
␈β⊃$␈↓ 
↓␈ε¬1␈↓ 
p␈ε¬0
␈β∪(

␈β↓Y␈↓ ↓H␈εα4.3.3␈ε∞␈↓ πλHO␈α␈W␈α	F␈α|AST␈αλCAN␈α	WE␈α	MU␈α␈L␈α}TIP␈α␈L␈α}Y␈εα␈α␈?␈↓ 
v␈εα279
␈βα(␈↓ ↓H␈εαand␈αthis␈αform␈α␈ula␈αsho␈α␈ws␈αho␈α␈w␈αthe␈αcoe}cien␈α␈ts␈↓ ε{␈ελW␈↓ π↑␈εα,␈↓ πt␈εα.␈αε.␈αε.␈↓ λ$␈εα,␈↓ λ9␈ελW␈↓ λf␈εα,␈↓ λ{␈ελW␈↓ 	3␈εαcan␈αbe␈αobtained
␈βα5␈↓ π→␈εm␈↓ π3␈ε→␈␈ε¬␈α␈1␈↓ λW␈ε¬1␈↓ 	→␈ε¬0
␈βαS␈↓ ↓H␈εαfrom␈αthe␈↓ α\␈ελ∩␈↓ αk␈εα's:
␈ββ→␈↓ β␈∧β→βαl
␈ββ≠␈↓ βu␈∧β≠βuλα
␈ββ"␈↓ βu␈∧β"βu,α
␈ββ*␈↓ β-␈εα36␈↓ ∧s␈εα341
␈ββN␈↓ βu␈∧βNβu,α
␈ββV␈↓ ∧5␈ε⊗␈␈εα3␈ε⊗␈αλ↓␈εα␈αλ36
␈ββy␈↓ βu␈∧βyβuλα
␈β∧␈↓ β␈∧∧βααE
␈β∧↓␈↓ ¬M␈∧∧↓¬Mλα
␈β∧	␈↓ ¬M␈∧∧	¬M,α
␈β∧⊃␈↓ β-␈εα36␈↓ ∧s␈εα233␈↓ εK␈εα691
␈β∧4␈↓ ¬M␈∧∧4¬M,α
␈β∧<␈↓ ∧5␈ε⊗␈␈εα2␈ε⊗␈αλ↓␈εα␈αλ36␈↓ ¬{␈ε⊗␈␈εα2␈ε⊗␈αλ↓␈εα␈αλ233
␈β∧?␈↓ 
p␈εα(17)
␈β∧←␈↓ ¬M␈∧∧←¬Mλα
␈β∧f␈↓ β␈∧∧fβα∧≥
␈β∧h␈↓ π%␈∧∧hπ%λα
␈β∧o␈↓ π%␈∧∧oπ%,α
␈β∧w␈↓ β-␈εα36␈↓ ∧s␈εα161␈↓ εK␈εα225␈↓ λ#␈εα294
␈β¬~␈↓ π%␈∧¬~π%,α
␈β¬"␈↓ ∧5␈ε⊗␈␈εα1␈ε⊗␈αλ↓␈εα␈αλ36␈↓ ¬{␈ε⊗␈␈εα1␈ε⊗␈αλ↓␈εα␈αλ161␈↓ πS␈ε⊗␈␈εα1␈ε⊗␈αλ↓␈εα␈αλ225
␈β¬E␈↓ π%␈∧¬Eπ%λα
␈β¬L␈↓ β␈∧¬Lβα¬u
␈β¬N␈↓ λ⎇␈∧¬Nλ⎇λα
␈β¬U␈↓ λ⎇␈∧¬Uλ⎇,α
␈β¬]␈↓ β-␈εα36␈↓ ∧s␈εα125␈↓ ε]␈εα64␈↓ λ5␈εα69␈↓ 	!␈εα10
␈βε␈↓ λ⎇␈∧ελ⎇λα
␈βε2␈↓ ↓H␈εαHere␈αthe␈αn␈α␈um␈α␈bers␈αbelo␈α␈w␈αthe␈αhorizon␈α␈tal␈αlines␈αsuccessiv␈α␈ely␈αsho␈α␈w␈αthe␈αcoe}cien␈α␈ts␈αof
␈βε↑␈↓ ↓H␈εαthe␈αpolynomials
␈βπ2␈↓ ↓l␈ελ∩␈↓ α=␈εα,␈↓ β∃␈ελ∩␈↓ βf␈εα(␈↓ βr␈ελx␈↓ ∧
␈εα+␈↓ ∧9␈ελm␈↓ ∧`␈εα+␈αλ2)␈αλ+␈↓ ¬↑␈ελ∩␈↓ ε/␈εα,
␈βπ?␈↓ ↓x␈εm␈↓ α∩␈ε→␈␈ε¬␈α␈1␈↓ β!␈εm␈↓ β;␈ε→␈␈ε¬␈α␈1␈↓ ¬j␈εm␈↓ ε∧␈ε→␈␈ε¬2
␈βπH␈↓ βx␈ε↓␈␈↓ π!␈ε↓↓
␈βπh␈↓ ∧ε␈ελ∩␈↓ ∧W␈εα(␈↓ ∧c␈ελx␈↓ ∧}␈ε⊗␈␈↓ ¬*␈ελm␈↓ ¬R␈εα+␈αλ2)␈αλ+␈↓ εP␈ελ∩␈↓ π/␈εα(␈↓ π;␈ελx␈↓ πV␈ε⊗␈␈↓ λα␈ελm␈↓ λ)␈εα+␈αλ3)␈αλ+␈↓ 	'␈ελ∩␈↓ 	x␈εα,␈↓ 
P␈εαetc.
␈βπu␈↓ ∧∩␈εm␈↓ ∧,␈ε→␈␈ε¬1␈↓ ε\␈εm␈↓ εv␈ε→␈␈ε¬␈α␈2␈↓ 	3␈εm␈↓ 	M␈ε→␈␈ε¬3
␈βλ;␈↓ α␈εαFrom␈αthis␈αtableau␈αw␈α␈e␈αhav␈α␈e
␈β		␈↓ ¬)␈ε¬4␈↓ ε4␈ε¬3␈↓ π-␈ε¬2
␈β	∂␈↓ βl␈ελW␈↓ ∧∂␈εα(␈↓ ∧≠␈ελx␈↓ ∧.␈εα)␈α
=␈α
36␈↓ ¬⊗␈ελx␈↓ ¬?␈εα+␈αλ125␈↓ ε!␈ελx␈↓ εK␈εα+␈αλ64␈↓ π≠␈ελx␈↓ πD␈εα+␈αλ69␈↓ λ∀␈ελx␈↓ λ/␈εα+␈αλ10,
␈β	c␈↓ ↓H␈εαso␈α∞the␈α∞answ␈α␈er␈α∞to␈α∞our␈α∞original␈α∞problem␈α∂is␈α∞1234␈ε⊗␈α	↓␈εα␈α
2341␈α
=␈↓ λD␈ελW␈↓ λh␈εα(16),␈α∞where␈↓ 
&␈ελW␈↓ 
J␈εα(16)␈α∞is
␈β
∞␈↓ ↓H␈εαobtained␈αby␈α
adding␈α
and␈α
shifting.␈α∞A␈α
generalization␈α
of␈α
this␈α
method␈α
for␈αobtaining
␈β
9␈↓ ↓H␈εαcoe}cien␈α␈ts␈αis␈αdiscussed␈αin␈αSection␈α4.6.4.
␈β
e␈↓ α␈εαThe␈αbasic␈αStirling␈αn␈α␈um␈α␈ber␈αiden␈α␈tity,
␈β2␈↓ ∧u␈ε↓~␈↓ ¬!␈ε↓≠␈↓ εs␈ε↓~␈↓ π∨␈ε↓≠␈↓ λ⊂␈ε↓~␈↓ λ<␈ε↓≠
␈β5␈↓ ¬␈ελn␈↓ π	␈ελn␈↓ λ&␈ελn
␈βF␈↓ ∧+␈εn␈↓ ¬O␈εn␈↓ πN␈ε¬1
␈βL␈↓ ∧_␈ελx␈↓ ∧G␈εα=␈↓ ¬=␈ελx␈↓ ¬i␈εα+␈↓ ε∃␈ε⊗↓␈αε↓␈αε↓␈↓ εG␈εα+␈↓ π;␈ελx␈↓ πd␈εα+␈↓ λR␈εα,
␈β[␈↓ ¬O␈∧[¬Oα∩␈↓ πN␈∧[πNα∂
␈βd␈↓ ¬␈ελn␈↓ π␈εα1␈↓ λ(␈εα0
␈β6␈↓ ↓H␈εαEq.␈α
1.2.6↑41,␈α∞sho␈α␈ws␈α∞that␈α∞if␈α∞the␈α
coe}cien␈α␈ts␈α∞of␈↓ π ␈ελW␈↓ πD␈εα(␈↓ πP␈ελx␈↓ πb␈εα)␈α∞are␈α∞nonnegativ␈α␈e,␈α∞so␈α∞are␈α
the
␈βa␈↓ ↓H␈εαn␈α␈um␈α␈bers␈↓ αX␈ελ∩␈↓ αq␈εα,␈αand␈αin␈α
such␈αa␈αcase␈ε∂␈αall␈αof␈αthe␈α
in␈α␈termediate␈αresults␈αin␈αthe␈αabo␈α␈v␈α␈e␈αcom-
␈βn␈↓ αd␈εj
␈β
␈↓ ↓H␈ε∂putation␈α
are␈αnonnegativ␈α␈e.␈εα␈αThis␈αfurther␈α
simpli|es␈α
the␈αToom↑Cook␈α
m␈α␈ultiplication
␈β
7␈↓ ↓H␈εαalgorithm,␈αwhich␈αw␈α␈e␈αwill␈αno␈α␈w␈αconsider␈αin␈αdetail.
␈β
w␈↓ ↓H␈ε∩Algorithm␈α	C␈εα␈α	(␈ε∂High-precision␈α	m␈α␈ultiplication␈α	of␈α	binary␈α	n␈α␈um␈α␈bers␈↓ 	
␈εα)␈ε∩.␈εα␈α∩Giv␈α␈en␈α	a␈α	positiv␈α␈e
␈β∞"␈↓ ↓H␈εαin␈α␈teger␈↓ α>␈ελn␈↓ α↑␈εαand␈αt␈α␈w␈α␈o␈αnonnegativ␈α␈e␈↓ ¬.␈ελn␈↓ ¬D␈εα-bit␈α
in␈α␈tegers␈↓ π
␈ελu␈↓ π+␈εαand␈↓ πp␈ελv␈↓ λβ␈εα,␈αthis␈αalgorithm␈αforms␈α
their
␈β∞M␈↓ ↓H␈εα2␈↓ ↓Z␈ελn␈↓ ↓o␈εα-bit␈αproduct,␈↓ βB␈ελw␈↓ β\␈εα.␈αFour␈αauxiliary␈αstacks␈αare␈αused␈αto␈αhold␈αthe␈αlong␈αn␈α␈um␈α␈bers␈αthat
␈β∞x␈↓ ↓H␈εαare␈αmanipulated␈αduring␈αthis␈αalgorithm:
␈β∂G␈↓ α6␈εαStacks␈↓ β(␈ελU␈↓ βF␈εα,␈↓ β\␈ελV␈↓ βv␈εα:␈↓ ∧H␈εαTemporary␈αstorage␈αof␈↓ π*␈ελU␈↓ πG␈εα(␈↓ πS␈ελj␈↓ πd␈εα)␈αand␈↓ λB␈ελV␈↓ λ\␈εα(␈↓ λh␈ελj␈↓ λx␈εα)␈αin␈αstep␈αC4.
␈β∂r␈↓ α6␈εαStack␈↓ β~␈ελC␈↓ β7␈εα:␈↓ ∧H␈εαNum␈α␈bers␈αto␈αbe␈αm␈α␈ultiplied,␈αand␈αcon␈α␈trol␈αcodes.
␈β⊂≥␈↓ α6␈εαStack␈↓ β~␈ελW␈↓ β>␈εα:␈↓ ∧H␈εαStorage␈αof␈↓ ¬t␈ελW␈↓ ε_␈εα(␈↓ ε$␈ελj␈↓ ε4␈εα).
␈β⊂q␈↓ ↓H␈εαThese␈α	stacks␈αλmay␈α	con␈α␈tain␈α	either␈α	binary␈α	n␈α␈um␈α␈bers␈α	or␈α	special␈α	con␈α␈trol␈α	sym␈α␈bols␈αλcalled
␈β⊃≤␈↓ ↓H␈εαcode-1,␈α∞code-2,␈α∞code-3,␈α∞and␈α∞code-4.␈α∩The␈α
algorithm␈α∞also␈α∞constructs␈α∞an␈α
auxiliary
␈β∪(

␈β↓Y␈↓ ↓H␈εα280␈↓ α=␈ε∞A␈α␈RITH␈α␈METIC␈εα␈↓ 
b4.3.3
␈βα(␈↓ ↓H␈εαtable␈α
of␈αn␈α␈um␈α␈bers␈↓ βX␈ελq␈↓ βs␈εα,␈↓ ∧λ␈ελr␈↓ ∧$␈εα;␈αthis␈αtable␈αis␈α
main␈α␈tained␈αin␈αsuch␈αa␈α
manner␈αthat␈αit␈αmay␈α
be
␈βα5␈↓ βe␈εk␈↓ ∧∃␈εk
␈βαS␈↓ ↓H␈εαstored␈α
as␈αa␈α
linear␈αlist,␈αwhere␈α
a␈αsingle␈α
poin␈α␈ter␈αthat␈α
trav␈α␈erses␈αthe␈α
list␈α(mo␈α␈ving␈α
back
␈βα}␈↓ ↓H␈εαand␈αforth)␈αmay␈αbe␈αused␈αto␈αaccess␈αthe␈αcurren␈α␈t␈αtable␈αen␈α␈try␈αof␈αin␈α␈terest.
␈ββ*␈↓ α␈εα(Stacks␈↓ β¬␈ελC␈↓ β(␈εαand␈↓ βi␈ελW␈↓ ∧∪␈εαin␈απthis␈απalgorithm␈αεare␈απused␈αεto␈απcon␈α␈trol␈αεthe␈απrecursiv␈α␈e␈αεmechanism
␈ββU␈↓ ↓H␈εαof␈α
the␈αm␈α␈ultiplication␈α
algorithm␈αin␈αa␈α
reasonably␈αstraigh␈α␈tforward␈αmanner␈α
that␈αis␈α
a
␈β∧␈↓ ↓H␈εαspecial␈αcase␈αof␈αgeneral␈αprocedures␈αdiscussed␈αin␈αChapter␈α8.)
␈β∧1␈↓ ↓H␈ε∩C1.␈↓ α␈εα[Compute␈↓ β4␈ελq␈↓ βD␈εα,␈↓ βT␈ελr␈↓ βp␈εαtables.]␈α→Set␈αstacks␈↓ ε#␈ελU␈↓ εA␈εα,␈↓ εW␈ελV␈↓ εq␈εα,␈↓ ππ␈ελC␈↓ π$␈εα,␈αand␈↓ λ␈ελW␈↓ λ0␈εαempty.␈αSet
␈β∧o␈↓ αT␈ελk␈↓ αp␈ε⊗ ␈εα␈α
1,␈↓ ∧λ␈ελq␈↓ ∧-␈ε⊗ ␈↓ ∧[␈ελq␈↓ ¬↓␈ε⊗ ␈εα␈α
16,␈↓ ε+␈ελr␈↓ εP␈ε⊗ ␈↓ ε}␈ελr␈↓ π#␈ε⊗ ␈εα␈α
4,␈↓ λ;␈ελQ␈↓ λ←␈ε⊗ ␈εα␈α
4,␈ελ␈↓ 	wR␈ε⊗␈α
 ␈εα␈α
2.
␈β∧|␈↓ ∧∃␈ε¬0␈↓ ∧h␈ε¬1␈↓ ε8␈ε¬0␈↓ π␈ε¬1
␈β¬-␈↓ α␈εαNo␈α␈w␈αif␈↓ β↓␈ελq␈↓ βP␈εα+␈↓ β|␈ελq␈↓ ∧!␈εα<␈↓ ∧O␈ελn␈↓ ∧e␈εα,␈αset
␈β¬:␈↓ β∞␈εk␈↓ β≥␈ε→␈␈ε¬␈α␈1␈↓ ∧	␈εk
␈β¬L␈↓ π⊃␈ε↓p
␈β¬g␈↓ π5␈∧¬gπ5α≠
␈β¬i␈↓ 	 ␈εQ␈↓ 
s␈εR
␈β¬o␈↓ α'␈ελk␈↓ αC␈ε⊗ ␈↓ αq␈ελk␈↓ β
␈εα+␈αλ1,␈↓ ∧ ␈ελQ␈↓ ∧D␈ε⊗ ␈↓ ∧r␈ελQ␈↓ ¬∃␈εα+␈ελ␈αλR␈εα,␈ελ␈↓ ε2R␈ε⊗␈α
 ␈α
b␈↓ π5␈ελQ␈↓ πU␈ε⊗c␈εα,␈↓ λ;␈ελq␈↓ λ`␈ε⊗ ␈↓ 	∞␈εα2␈↓ 	6␈εα,␈↓ 
∞␈ελr␈↓ 
3␈ε⊗ ␈↓ 
a␈εα2␈↓ λ␈εα,
␈β¬⎇␈↓ λH␈εk␈↓ 
~␈εk
␈βε∞␈↓ λ↔␈ε↓␈
␈βε-␈↓ α␈εαand␈α∞repeat␈α∞this␈α∞operation␈α
un␈α␈til␈↓ ε∧␈ελq␈↓ εT␈εα+␈↓ π↓␈ελq␈↓ π*␈ε⊗∃␈↓ π[␈ελn␈↓ πq␈εα.␈↓ λ%␈ε∂Note:␈εα␈α⊂The␈α∞calculation␈α
of
␈βε;␈↓ ε⊃␈εk␈↓ ε ␈ε→␈␈ε¬1␈↓ π∞␈εk
␈βεV␈↓ β∂␈∧εVβ∂α≠
␈βεW␈↓ αk␈ε⊗p
␈βεY␈↓ α␈ελR␈ε⊗␈α
 ␈α
b␈↓ β∂␈ελQ␈↓ β/␈ε⊗c␈εα␈αdoes␈αnot␈αrequire␈αa␈αsquare␈αroot␈αto␈αbe␈αtak␈α␈en,␈αsince␈αw␈α␈e␈αmay␈αsimply
␈βε␈␈↓ ¬⊃␈ε¬2␈↓ 
	␈ε¬2
␈βπ∧␈↓ α␈εαset␈ελ␈αR␈ε⊗␈α
 ␈ελ␈α
R␈εα␈απ+␈απ1␈αif␈α(␈ελR␈εα␈αε+␈απ1␈↓ ¬¬␈εα)␈↓ ¬*␈ε⊗∀␈↓ ¬X␈ελQ␈↓ ¬⎇␈εαand␈αleav␈α␈e␈ελ␈αR␈εα␈αunchanged␈αif␈α(␈ελR␈εα␈απ+␈απ1␈↓ 	⎇␈εα)␈↓ 
!␈εα>␈↓ 
O␈ελQ␈↓ 
i␈εα;␈αsee
␈βπ/␈↓ α␈εαex␈α␈ercise␈α2.␈αIn␈αthis␈αstep␈αw␈α␈e␈αbuild␈αthe␈αsequences
␈βπe␈↓ β~␈ελk␈↓ β@␈εα=␈↓ β␈␈εα0␈↓ ∧h␈εα1␈↓ ¬P␈εα2␈↓ ε8␈εα3␈↓ π(␈εα4␈↓ λ∨␈εα5␈↓ 	⊗␈εα6␈↓ 	}␈εα.␈αε.␈αε.
␈βλ⊗␈↓ ∧
␈ε¬4␈↓ ∧r␈ε¬4␈↓ ¬[␈ε¬6␈↓ εC␈ε¬8␈↓ π,␈ε¬10␈↓ λ"␈ε¬1␈α↓3␈↓ 	→␈ε¬1␈α↓6
␈βλ≠␈↓ β⊂␈ελq␈↓ β@␈εα=␈↓ βx␈εα2␈↓ ∧`␈εα2␈↓ ¬I␈εα2␈↓ ε1␈εα2␈↓ π~␈εα2␈↓ λ⊂␈εα2␈↓ 	π␈εα2␈↓ 	}␈εα.␈αε.␈αε.
␈βλ)␈↓ β≥␈εk
␈βλL␈↓ ∧
␈ε¬2␈↓ ∧r␈ε¬2␈↓ ¬[␈ε¬2␈↓ εC␈ε¬2␈↓ π3␈ε¬3␈↓ λ*␈ε¬3␈↓ 	 ␈ε¬4
␈βλQ␈↓ β⊃␈ελr␈↓ β@␈εα=␈↓ βx␈εα2␈↓ ∧`␈εα2␈↓ ¬I␈εα2␈↓ ε1␈εα2␈↓ π!␈εα2␈↓ λ_␈εα2␈↓ 	∞␈εα2␈↓ 	}␈εα.␈αε.␈αε.
␈βλ←␈↓ β≥␈εk
␈β	∂␈↓ α␈εαThe␈αm␈α␈ultiplication␈αof␈α70000-bit␈αn␈α␈um␈α␈bers␈αw␈α␈ould␈αcause␈αthis␈αstep␈αto␈αterminate
␈β	≠␈↓ εU␈ε↓↓
␈β	6␈↓ ¬L␈ε¬13␈↓ ε/␈ε¬16
␈β	;␈↓ α␈εαwith␈↓ α↑␈ελk␈↓ αz␈εα=␈α
6,␈αsince␈α70000␈α
<␈↓ ¬:␈εα2␈↓ ¬q␈εα+␈↓ ε≥␈εα2␈↓ εK␈εα.
␈β	k␈↓ ↓H␈ε∩C2.␈↓ α␈εα[Put␈↓ α[␈ελu␈↓ αq␈εα,␈↓ β↓␈ελv␈↓ β ␈εαon␈α
stack.]␈α≠Put␈α
code-1␈α
on␈α
stack␈↓ π≠␈ελC␈↓ π9␈εα,␈α
then␈α
place␈↓ λ␈␈ελu␈↓ 	"␈εαand␈↓ 	i␈ελv␈↓ 
	␈εαon␈α␈to␈αstack
␈β
⊗␈↓ α␈ελC␈↓ α5␈εαas␈αn␈α␈um␈α␈bers␈αof␈αexactly␈↓ ¬→␈ελq␈↓ ¬h␈εα+␈↓ ε∀␈ελq␈↓ ε<␈εαbits␈αeach.
␈β
$␈↓ ¬&␈εk␈↓ ¬5␈ε→␈␈ε¬1␈↓ ε!␈εk
␈β
G␈↓ ↓H␈ε∩C3.␈↓ α␈εα[Check␈α⊂recursion␈α⊂lev␈α␈el.]␈α!Decrease␈↓ ε>␈ελk␈↓ ε`␈εαby␈α⊂1.␈α_If␈↓ πt␈ελk␈↓ λ↔␈εα=␈α⊃0,␈α⊃the␈α⊂top␈α⊂of␈α⊂stack␈↓ ∂␈ελC
␈β
r␈↓ α␈εαcon␈α␈tains␈α
t␈α␈w␈α␈o␈α
32-bit␈α
n␈α␈um␈α␈bers,␈↓ ¬d␈ελu␈↓ εε␈εαand␈↓ εN␈ελv␈↓ ε`␈εα;␈α∞set␈↓ π1␈ελw␈↓ πX␈ε⊗ ␈↓ λλ␈ελu␈↓ λ≥␈ελv␈↓ λ=␈εαusing␈α
a␈α
built-in␈α
routine
␈β≥␈↓ α␈εαfor␈α∞m␈α␈ultiplying␈α∞32-bit␈α∞n␈α␈um␈α␈bers,␈α∞and␈α∞go␈α
to␈α∞step␈α∞C10.␈α∩If␈↓ 	¬␈ελk␈↓ 	$␈εα>␈α
0,␈α∞set␈↓ 
9␈ελr␈↓ 
V␈ε⊗ ␈↓ π␈ελr␈↓ "␈εα,
␈β+␈↓ ∀␈εk
␈βI␈↓ α␈ελq␈↓ α&␈ε⊗ ␈↓ αT␈ελq␈↓ αp␈εα,␈↓ βε␈ελp␈↓ β"␈ε⊗ ␈↓ βP␈ελq␈↓ ∧∨␈εα+␈↓ ∧K␈ελq␈↓ ∧f␈εα,␈αand␈αgo␈αon␈αto␈αstep␈αC4.
␈βV␈↓ αa␈εk␈↓ β]␈εk␈↓ βl␈ε→␈␈ε¬␈α␈1␈↓ ∧X␈εk
␈βy␈↓ ↓H␈ε∩C4.␈↓ α␈εα[Break␈αin␈α␈to␈↓ βE␈ελr␈↓ β\␈εα+␈απ1␈αparts.]␈α↔Let␈αthe␈αn␈α␈um␈α␈ber␈αat␈αthe␈αtop␈αof␈αstack␈↓ 	M␈ελC␈↓ 	u␈εαbe␈αregarded
␈β$␈↓ α␈εαas␈αa␈αlist␈αof␈↓ β8␈ελr␈↓ βN␈εα+␈απ1␈αn␈α␈um␈α␈bers␈αwith␈↓ ¬v␈ελq␈↓ ε⊃␈εαbits␈αeach,␈α(␈↓ π=␈ελU␈↓ πg␈εα.␈αε.␈αε.␈↓ λ↔␈ελU␈↓ λ=␈ελU␈↓ λb␈εα)␈↓ 	λ␈εα.␈α(The␈αtop␈α
of␈αstack
␈β0␈↓ λ|␈ε
q
␈β2␈↓ πT␈εr␈↓ λ.␈ε¬1␈↓ λT␈ε¬0␈↓ λn␈ε¬2
␈βP␈↓ α␈ελC␈↓ α6␈εαno␈α␈w␈α
con␈α␈tains␈α∞an␈α
(␈↓ ∧P␈ελr␈↓ ∧h␈εα+␈α	1)␈↓ ¬3␈ελq␈↓ ¬O␈εα=␈α(␈↓ ε␈ελq␈↓ ε/␈εα+␈↓ ε\␈ελq␈↓ π"␈εα)-bit␈α
n␈α␈um␈α␈ber.)␈α⊂For␈↓ 	T␈ελj␈↓ 	p␈εα=␈α0,␈α
1,␈↓ 
r␈εα.␈αε.␈αε.␈↓ "␈εα,
␈β]␈↓ ε_␈εk␈↓ εi␈εk␈↓ εw␈ε¬+1
␈β{␈↓ α␈εα2␈↓ α≡␈ελr␈↓ α.␈εα,␈αcompute␈αthe␈↓ ∧∀␈ελp␈↓ ∧&␈εα-bit␈αn␈α␈um␈α␈bers
␈β
→␈↓ βs␈ε↓␈␈↓ πO␈ε↓↓
␈β
9␈↓ ∧π␈εα.␈αε.␈αε.␈↓ ∧7␈εα(␈↓ ∧C␈ελU␈↓ ∧h␈ελj␈↓ ¬␈εα+␈↓ ¬,␈ελU␈↓ ¬|␈εα)␈↓ ελ␈ελj␈↓ ε ␈εα+␈↓ εL␈ε⊗↓␈αε↓␈αε↓␈↓ ε}␈εα+␈↓ π*␈ελU␈↓ π]␈ελj␈↓ πv␈εα+␈↓ λ"␈ελU␈↓ λQ␈εα=␈↓ λ␈␈ελU␈↓ 	≥␈εα(␈↓ 	)␈ελj␈↓ 	9␈εα)
␈β
F␈↓ ∧Z␈εr␈↓ ¬C␈εr␈↓ ¬P␈ε→␈␈ε¬1␈↓ πA␈ε¬1␈↓ λ9␈ε¬0
␈β
w␈↓ α␈εαand␈α
successiv␈α␈ely␈α	put␈α
these␈α	values␈α
on␈α␈to␈α	stack␈↓ πA␈ελU␈↓ π←␈εα.␈α(The␈α	bottom␈α
of␈α
stack␈↓ 
F␈ελU␈↓ 
m␈εαno␈α␈w
␈β∞"␈↓ α␈εαcon␈α␈tains␈↓ β→␈ελU␈↓ β7␈εα(0),␈αthen␈αcomes␈↓ ¬3␈ελU␈↓ ¬P␈εα(1),␈αetc.,␈αwith␈↓ π0␈ελU␈↓ πN␈εα(2␈↓ πl␈ελr␈↓ π|␈εα)␈αon␈αtop.␈αNote␈αthat
␈β∞A␈↓ ¬¬␈ε↓␈␈↓ λ%␈ε↓↓
␈β∞Z␈↓ ∧x␈εq␈↓ ¬M␈εr␈↓ εH␈εr␈↓ εV␈ε→␈␈ε¬1␈↓ λ⎇␈εq␈↓ 	
␈ε¬+1␈↓ 	o␈εr␈↓ 
F␈εp
␈β∞`␈↓ αY␈ελU␈↓ αv␈εα(␈↓ βα␈ελj␈↓ β∪␈εα)␈ε⊗␈α
∀␈↓ βW␈ελU␈↓ βt␈εα(2␈↓ ∧∩␈ελr␈↓ ∧"␈εα)␈α
<␈↓ ∧f␈εα2␈↓ ¬∪␈εα(2␈↓ ¬1␈ελr␈↓ ¬A␈εα)␈↓ ¬c␈εα+␈αλ(2␈↓ ε-␈ελr␈↓ ε<␈εα)␈↓ π	␈εα+␈↓ π5␈ε⊗↓␈αε↓␈αε↓␈↓ πg␈εα+␈αλ1␈↓ λ=␈εα<␈↓ λk␈εα2␈↓ 	5␈εα(2␈↓ 	S␈ελr␈↓ 	c␈εα)␈↓ 
ε␈ε⊗∀␈↓ 
4␈εα2␈↓ 
V␈εα,
␈β∂≡␈↓ α␈εαby␈αex␈α␈ercise␈α3.)␈αThen␈αremo␈α␈v␈α␈e␈↓ ¬S␈ελU␈↓ ¬⎇␈εα.␈αε.␈αε.␈↓ ε-␈ελU␈↓ εS␈ελU␈↓ π∧␈εαfrom␈αstack␈↓ λ8␈ελC␈↓ λU␈εα.
␈β∂,␈↓ ¬j␈εr␈↓ εD␈ε¬1␈↓ εj␈ε¬0
␈β∂J␈↓ αP␈εαNo␈α␈w␈α∂the␈α∞top␈α∞of␈α∂stack␈↓ ¬5␈ελC␈↓ ¬a␈εαcon␈α␈tains␈α∞another␈α∞list␈α∂of␈↓ λa␈ελr␈↓ λz␈εα+␈α
1␈↓ 	H␈ελq␈↓ 	X␈εα-bit␈α∞n␈α␈um␈α␈bers,
␈β∂u␈↓ α␈ελV␈↓ α3␈εα.␈αε.␈αε.␈↓ αc␈ελV␈↓ βε␈ελV␈↓ β(␈εα,␈αand␈αthe␈↓ ∧B␈ελp␈↓ ∧U␈εα-bit␈αn␈α␈um␈α␈bers
␈β⊂α␈↓ α ␈εr␈↓ αw␈ε¬1␈↓ β~␈ε¬0
␈β⊂∪␈↓ β{␈ε↓␈␈↓ πN␈ε↓↓
␈β⊂3␈↓ ∧∂␈εα.␈αε.␈αε.␈↓ ∧?␈εα(␈↓ ∧K␈ελV␈↓ ∧m␈ελj␈↓ ¬¬␈εα+␈↓ ¬1␈ελV␈↓ ¬⎇␈εα)␈↓ ε	␈ελj␈↓ ε"␈εα+␈↓ εN␈ε⊗↓␈αε↓␈αε↓␈↓ π␈εα+␈↓ π,␈ελV␈↓ π\␈ελj␈↓ πu␈εα+␈↓ λ!␈ελV␈↓ λM␈εα=␈↓ λ{␈ελV␈↓ 	∃␈εα(␈↓ 	!␈ελj␈↓ 	1␈εα)
␈β⊂@␈↓ ∧←␈εr␈↓ ¬E␈εr␈↓ ¬R␈ε→␈␈ε¬1␈↓ π@␈ε¬1␈↓ λ5␈ε¬0
␈β⊂q␈↓ α␈εαshould␈αλbe␈αλput␈αλon␈α␈to␈αλstack␈↓ ¬␈ελV␈↓ ¬-␈εαin␈αλthe␈αλsame␈αλway.␈αAfter␈αλthis␈αλhas␈αλbeen␈αλdone,␈αλremo␈α␈v␈α␈e
␈β⊃≤␈↓ α␈ελV␈↓ α3␈εα.␈αε.␈αε.␈↓ αc␈ελV␈↓ βε␈ελV␈↓ β4␈εαfrom␈αstack␈↓ ∧h␈ελC␈↓ ¬¬␈εα.
␈β⊃)␈↓ α ␈εr␈↓ αw␈ε¬1␈↓ β~␈ε¬0
␈β∪(

␈β↓Y␈↓ ↓H␈εα4.3.3␈ε∞␈↓ πλHO␈α␈W␈α	F␈α|AST␈αλCAN␈α	WE␈α	MU␈α␈L␈α}TIP␈α␈L␈α}Y␈εα␈α␈?␈↓ 
v␈εα281
␈βε<␈↓ αe␈ε∪Fig.␈α8.␈εβ␈α~To␈α␈om↑␈α␈Coo␈α␈k␈αalgo␈α␈rithm␈αfor␈αh␈α␈igh␈α␈-␈α↓p␈α␈recision␈α
m␈α␈ultiplicat␈α␈i␈α↓o␈α␈n.
␈βπ6␈↓ ↓H␈ε∩C5.␈↓ α␈εα[Recurse.]␈α≤Successiv␈α␈ely␈α
put␈α
the␈α∞follo␈α␈wing␈α
items␈α
on␈α␈to␈α∞stack␈↓ 	=␈ελC␈↓ 	Z␈εα,␈α∞at␈α
the␈α
same
␈βπa␈↓ α␈εαtime␈αemptying␈αstacks␈↓ ∧j␈ελU␈↓ ¬∀␈εαand␈↓ ¬Z␈ελV␈↓ ¬t␈εα:
␈βλ5␈↓ α0␈εαcode-2,␈↓ β*␈ελV␈↓ βD␈εα(2␈↓ βb␈ελr␈↓ βr␈εα),␈↓ ∧∀␈ελU␈↓ ∧1␈εα(2␈↓ ∧O␈ελr␈↓ ∧←␈εα),␈αcode-3,␈↓ ¬{␈ελV␈↓ ε∃␈εα(2␈↓ ε3␈ελr␈↓ εK␈ε⊗␈␈εα␈αλ1),␈↓ π+␈ελU␈↓ πI␈εα(2␈↓ πg␈ελr␈↓ π}␈ε⊗␈␈εα␈αλ1),␈↓ λ↑␈εα.␈αε.␈αε.␈↓ 	∞␈εα,
␈βλ`␈↓ ε1␈εαcode-3,␈↓ π+␈ελV␈↓ πE␈εα(1),␈↓ λ¬␈ελU␈↓ λ#␈εα(1),␈αcode-3,␈↓ 	]␈ελV␈↓ 	w␈εα(0),␈↓ 
7␈ελU␈↓ 
T␈εα(0).
␈β	5␈↓ α␈εαPut␈αcode-4␈αon␈α␈to␈αstack␈↓ ∧o␈ελW␈↓ ¬∪␈εα.␈αGo␈αback␈αto␈αstep␈αC3.
␈β	K␈↓ ∧M␈ε↓␈
␈β	j␈↓ ↓H␈ε∩C6.␈↓ α␈εα[Sav␈α␈e␈αone␈α
product.]␈↓ ∧[␈εαAt␈αthis␈α
poin␈α␈t␈αthe␈α
m␈α␈ultiplication␈αalgorithm␈α
has␈αset␈↓ 
g␈ελw␈↓ ␈εαto
␈β	v␈↓ εe␈ε↓↓
␈β
∃␈↓ α␈εαone␈α
of␈αthe␈α
products␈↓ ∧M␈ελW␈↓ ∧p␈εα(␈↓ ∧|␈ελj␈↓ ¬
␈εα)␈α=␈↓ ¬S␈ελU␈↓ ¬q␈εα(␈↓ ¬⎇␈ελj␈↓ ε
␈εα)␈↓ ε→␈ελV␈↓ ε3␈εα(␈↓ ε?␈ελj␈↓ εO␈εα).␈↓ π␈εαPut␈↓ πD␈ελw␈↓ πl␈εαon␈α␈to␈αstack␈↓ 	≤␈ελW␈↓ 	@␈εα.␈α∞(This␈αn␈α␈um␈α␈ber
␈β
A␈↓ α␈ελw␈↓ α3␈εαcon␈α␈tains␈α2(␈↓ β↑␈ελq␈↓ ∧↓␈εα+␈↓ ∧-␈ελq␈↓ ∧t␈εα)␈αbits.)␈αGo␈αback␈αto␈αstep␈αC3.
␈β
N␈↓ βk␈εk␈↓ ∧:␈εk␈↓ ∧I␈ε→␈␈ε¬1
␈β
v␈↓ ↓H␈ε∩C7.␈↓ α␈εα[Find␈↓ αi␈ελ∩␈↓ αx␈εα's.]␈α∩Set␈↓ βp␈ελr␈↓ ∧
␈ε⊗ ␈↓ ∧8␈ελr␈↓ ∧S␈εα,␈↓ ∧g␈ελq␈↓ ¬↓␈ε⊗ ␈↓ ¬/␈ελq␈↓ ¬K␈εα,␈↓ ¬↑␈ελp␈↓ ¬z␈ε⊗ ␈↓ ε(␈ελq␈↓ εs␈εα+␈↓ π~␈ελq␈↓ π6␈εα.␈α(At␈α	this␈αλpoin␈α␈t␈α	stack␈↓ 	␈␈ελW␈↓ 
+␈εαcon␈α␈tains
␈β∧␈↓ ∧E␈εk␈↓ ¬<␈εk␈↓ ε5␈εk␈↓ εD␈ε→␈␈ε¬1␈↓ π'␈εk
␈β!␈↓ α␈εα.␈αε.␈αε.␈↓ α<␈εα,␈αcode-4,␈↓ βJ␈ελW␈↓ βn␈εα(0),␈↓ ∧.␈ελW␈↓ ∧R␈εα(1),␈↓ ¬⊃␈εα.␈αε.␈αε.␈↓ ¬A␈εα,␈↓ ¬V␈ελW␈↓ ¬z␈εα(2␈↓ ε_␈ελr␈↓ ε(␈εα)␈αfrom␈αbottom␈αto␈αtop,␈αwhere␈αeach␈↓ 
=␈ελW␈↓ 
a␈εα(␈↓ 
m␈ελj␈↓ 
⎇␈εα)␈αis
␈βM␈↓ α␈εαa␈α2␈↓ α<␈ελp␈↓ αN␈εα-bit␈αn␈α␈um␈α␈ber.)
␈βx␈↓ αP␈εαNo␈α␈w␈α∞for␈↓ β←␈ελj␈↓ β⎇␈εα=␈α
1,␈α∞2,␈α∞3,␈↓ ¬-␈εα.␈αε.␈αε.␈↓ ¬]␈εα,␈α∞2␈↓ επ␈ελr␈↓ ε↔␈εα,␈α∞perform␈α∞the␈α∞follo␈α␈wing␈α∞loop:␈α⊂For␈↓ 
5␈ελt␈↓ 
P␈εα=␈α
2␈↓ ∪␈ελr␈↓ "␈εα,
␈ββ␈↓ εZ␈ε↓␈␈↓ π|␈ε↓↓␈↓ λN␈ε↓␈
␈β#␈↓ α␈εα2␈↓ α≡␈ελr␈↓ α8␈ε⊗␈␈εα␈α1,␈α⊃2␈↓ β&␈ελr␈↓ β@␈ε⊗␈␈εα␈α
2,␈↓ ∧≠␈εα.␈αε.␈αε.␈↓ ∧K␈εα,␈↓ ∧f␈ελj␈↓ ∧v␈εα,␈α⊃set␈↓ ¬M␈ελW␈↓ ¬q␈εα(␈↓ ¬⎇␈ελt␈↓ ε
␈εα)␈ε⊗␈α⊂ ␈↓ εh␈ελW␈↓ π␈εα(␈↓ π_␈ελt␈↓ π0␈ε⊗␈␈εα␈α
1)␈↓ λ
␈εα/␈↓ λ≤␈ελj␈↓ λ,␈εα.␈↓ λ\␈εαHere␈↓ 	4␈ελj␈↓ 	T␈εαm␈α␈ust␈α∂increase
␈β/␈↓ εJ␈ε↓␈␈↓ λk␈ε↓↓
␈βN␈↓ α␈εαand␈↓ αT␈ελt␈↓ αp␈εαm␈α␈ust␈α∞decrease.␈α∪The␈α∂quan␈α␈tity␈↓ εX␈ελW␈↓ ε|␈εα(␈↓ πλ␈ελt␈↓ π∃␈εα)␈ε⊗␈α
␈␈↓ πX␈ελW␈↓ π|␈εα(␈↓ λλ␈ελt␈↓ λ∨␈ε⊗␈␈εα␈α
1)␈↓ λy␈εα/␈↓ 	␈ελj␈↓ 	)␈εαwill␈α∂always␈α∞be␈α∞a
␈βZ␈↓ πx␈ε↓↓
␈βy␈↓ α␈εαnonnegativ␈α␈e␈αin␈α␈teger␈αthat␈α|ts␈αin␈α2␈↓ ε∩␈ελp␈↓ ε0␈εαbits;␈αcf.␈α(15).
␈β
/␈↓ ↓H␈ε∩C8.␈↓ α␈εα[Find␈↓ αo␈ελW␈↓ β∪␈εα's.]␈α∨For␈↓ ∧%␈ελj␈↓ ∧D␈εα=␈α∂2␈↓ ¬	␈ελr␈↓ ¬#␈ε⊗␈␈εα␈α
1,␈α⊂2␈↓ ε∂␈ελr␈↓ ε)␈ε⊗␈␈εα␈α
2,␈↓ πβ␈εα.␈αε.␈αε.␈↓ π3␈εα,␈α∂1,␈α⊂perform␈α∂the␈α∂follo␈α␈wing␈α∂loop:
␈β
:␈↓ 	`␈ε↓␈
␈β
Z␈↓ α␈εαFor␈↓ αP␈ελt␈↓ αh␈εα=␈↓ β↔␈ελj␈↓ β'␈εα,␈↓ β>␈ελj␈↓ βV␈εα+␈α	1,␈↓ ∧+␈εα.␈αε.␈αε.␈↓ ∧[␈εα,␈α
2␈↓ ¬∧␈ελr␈↓ ¬≤␈ε⊗␈␈εα␈αλ1,␈α
set␈↓ ε)␈ελW␈↓ εM␈εα(␈↓ εY␈ελt␈↓ εf␈εα)␈ε⊗␈α ␈↓ π,␈ελW␈↓ πO␈εα(␈↓ π[␈ελt␈↓ πh␈εα)␈ε⊗␈α	␈␈↓ λ)␈ελj␈↓ λ9␈ελW␈↓ λ]␈εα(␈↓ λi␈ελt␈↓ λ␈␈εα+␈αλ1).␈↓ 	n␈εαHere␈↓ 
C␈ελj␈↓ 
←␈εαm␈α␈ust
␈β∞¬␈↓ α␈εαdecrease␈α∞and␈↓ βe␈ελt␈↓ ∧␈εαm␈α␈ust␈α∂increase.␈α∪The␈α∞result␈α∂of␈α∞this␈α∂operation␈α∞will␈α∂again␈α∞be␈α∞a
␈β∞⊃␈↓ ε6␈ε↓↓
␈β∞0␈↓ α␈εαnonnegativ␈α␈e␈α2␈↓ βg␈ελp␈↓ βy␈εα-bit␈αin␈α␈teger;␈αcf.␈α(17).
␈β∞f␈↓ ↓H␈ε∩C9.␈↓ α␈εα[Set␈αansw␈α␈er.]␈α→Set␈↓ ∧*␈ελw␈↓ ∧Q␈εαto␈αthe␈α2(␈↓ ¬Y␈ελq␈↓ ¬⎇␈εα+␈↓ ε)␈ελq␈↓ εo␈εα)-bit␈αin␈α␈teger
␈β∞s␈↓ ¬f␈εk␈↓ ε6␈εk␈↓ εD␈ε¬+1
␈β∂≠␈↓ β&␈ε↓␈␈↓ βj␈ε↓␈␈↓ εL␈ε↓↓␈↓ λZ␈ε↓↓
␈β∂4␈↓ ∧g␈εq␈↓ εl␈εq␈↓ λz␈εq
␈β∂:␈↓ β:␈εα.␈αε.␈αε.␈↓ βx␈ελW␈↓ ∧≤␈εα(2␈↓ ∧:␈ελr␈↓ ∧I␈εα)␈↓ ∧U␈εα2␈↓ ∧⎇␈εα+␈↓ ¬)␈ελW␈↓ ¬M␈εα(2␈↓ ¬k␈ελr␈↓ εα␈ε⊗␈␈εα␈αλ1)␈↓ εZ␈εα2␈↓ πα␈εα+␈↓ π.␈ε⊗↓␈αε↓␈αε↓␈↓ π`␈εα+␈↓ λ␈ελW␈↓ λ0␈εα(1)␈↓ λh␈εα2␈↓ 	∂␈εα+␈↓ 	;␈ελW␈↓ 	←␈εα(0).
␈β⊂∞␈↓ α␈εαRemo␈α␈v␈α␈e␈↓ β∃␈ελW␈↓ β9␈εα(2␈↓ βW␈ελr␈↓ βg␈εα),␈↓ ∧	␈εα.␈αε.␈αε.␈↓ ∧9␈εα,␈↓ ∧O␈ελW␈↓ ∧s␈εα(0)␈αand␈αcode-4␈αfrom␈αstack␈↓ λ∪␈ελW␈↓ λ7␈εα.
␈β⊂D␈↓ ↓6␈ε∩C10.␈↓ α␈εα[Return.]␈α~Set␈↓ βr␈ελk␈↓ ∧∞␈ε⊗ ␈↓ ∧=␈ελk␈↓ ∧W␈εα+␈α	1.␈α
Remo␈α␈v␈α␈e␈α
the␈αtop␈α
of␈αstack␈↓ λ?␈ελC␈↓ λ\␈εα.␈α∞If␈αit␈α
is␈αcode-3,␈α
go␈αto
␈β⊂o␈↓ α␈εαC6.␈α⊃If␈α
it␈α∞is␈α
code-2,␈α∞put␈↓ ¬¬␈ελw␈↓ ¬-␈εαon␈α␈to␈α∞stack␈↓ ε←␈ελW␈↓ π⊃␈εαand␈α
go␈α∞to␈α∞C7.␈α⊂And␈α∞if␈α
it␈α∞is␈α
code-1,
␈β⊃~␈↓ α␈εαterminate␈αthe␈αalgorithm␈α(␈↓ ¬≡␈ελw␈↓ ¬E␈εαis␈αthe␈αansw␈α␈er).
␈β⊃∨␈↓ πO␈∧⊃∨πO≠∂
␈β∪(

␈β↓Y␈↓ ↓H␈εα282␈↓ α=␈ε∞A␈α␈RITH␈α␈METIC␈εα␈↓ 
b4.3.3
␈βα&␈↓ α␈εαLet␈α∞us␈α
no␈α␈w␈α∞estimate␈α∞the␈α
running␈α∞time,␈↓ πβ␈ελT␈↓ π≤␈εα(␈↓ π(␈ελn␈↓ π>␈εα),␈α∞for␈α∞Algorithm␈α
C,␈α∞in␈α∞terms␈α
of
␈βαQ␈↓ ↓H␈εαsome␈αthings␈αw␈α␈e␈αshall␈αcall␈α\cy␈α␈cles,"␈αi.e.,␈αelemen␈α␈tary␈αmachine␈αoperations.␈αStep␈αC1
␈βα⎇␈↓ ↓H␈εαtak␈α␈es␈↓ α$␈ελO␈↓ α>␈εα(␈↓ αJ␈ελq␈↓ αf␈εα)␈αcy␈α␈cles,␈αev␈α␈en␈αif␈αw␈α␈e␈αrepresen␈α␈t␈αthe␈αn␈α␈um␈α␈ber␈↓ πq␈ελq␈↓ λ→␈εαin␈α␈ternally␈αas␈αa␈αlong␈αstring
␈ββ
␈↓ αW␈εk␈↓ π}␈εk
␈ββ(␈↓ ↓H␈εαof␈↓ ↓t␈ελq␈↓ α≥␈εαbits␈α∞follo␈α␈w␈α␈ed␈α∞by␈α∞some␈α∞delimiter,␈α∞since␈↓ πβ␈ελq␈↓ π(␈εα+␈↓ πV␈ελq␈↓ λ&␈εα+␈↓ λS␈ε⊗↓␈αε↓␈αε↓␈↓ 	ε␈εα+␈↓ 	3␈ελq␈↓ 	]␈εαwill␈α∞be␈↓ 
U␈ελO␈↓ 
o␈εα(␈↓ 
{␈ελq␈↓ ⊗␈εα).
␈ββ5␈↓ α↓␈εk␈↓ π⊂␈εk␈↓ πc␈εk␈↓ πq␈ε→␈␈ε¬1␈↓ 	@␈ε¬0␈↓ λ␈εk
␈ββS␈↓ ↓H␈εαStep␈αC2␈αobviously␈αtak␈α␈es␈↓ ∧S␈ελO␈↓ ∧m␈εα(␈↓ ∧y␈ελq␈↓ ¬∀␈εα)␈αcy␈α␈cles.
␈ββ`␈↓ ¬ε␈εk
␈ββ}␈↓ α␈εαNo␈α␈w␈α⊃let␈↓ β≥␈ελt␈↓ βG␈εαdenote␈α⊂the␈α⊃amoun␈α␈t␈α⊃of␈α⊃computation␈α⊂required␈α⊃to␈α⊃get␈α⊃from␈α⊂step
␈β∧␈↓ β'␈εk
␈β∧)␈↓ ↓H␈εαC3␈α∂to␈α∂step␈α∞C10␈α∂for␈α∂a␈α∂particular␈α∂value␈α∂of␈↓ εf␈ελk␈↓ ππ␈εα(after␈↓ πl␈ελk␈↓ λ
␈εαhas␈α∂been␈α∂decreased␈α∞at␈α∂the
␈β∧U␈↓ ↓H␈εαbeginning␈αof␈αstep␈αC3).␈αStep␈αC3␈αrequires␈↓ εD␈ελO␈↓ ε↑␈εα(␈↓ εj␈ελq␈↓ εz␈εα)␈αcy␈α␈cles␈αat␈αmost.␈α
Step␈αC4␈αin␈α␈v␈α␈olv␈α␈es␈↓ ≥␈ελr
␈β¬␈↓ ↓H␈εαm␈α␈ultiplications␈αof␈↓ βg␈ελp␈↓ βy␈εα-bit␈αn␈α␈um␈α␈bers␈αby␈α(␈↓ ε
␈εαlg␈↓ ε/␈εα2␈↓ εA␈ελr␈↓ εQ␈εα)-bit␈αn␈α␈um␈α␈bers,␈αand␈↓ 	␈ελr␈↓ 	≤␈εαadditions␈αof␈↓ 
b␈ελp␈↓ 
t␈εα-bit
␈β¬&␈↓ 	F␈ε¬2
␈β¬+␈↓ ↓H␈εαn␈α␈um␈α␈bers,␈α
all␈αrepeated␈α
4␈↓ ∧:␈ελr␈↓ ∧R␈εα+␈α	2␈α
times.␈α∞Th␈α␈us␈α
w␈α␈e␈αneed␈α
a␈α
total␈α
of␈↓ 	⊂␈ελO␈↓ 	+␈εα(␈↓ 	7␈ελr␈↓ 	U␈ελq␈↓ 	k␈εαlog␈↓ 
∨␈ελr␈↓ 
/␈εα)␈αcy␈α␈cles.
␈β¬V␈↓ ↓H␈εαStep␈αC5␈αrequires␈αmo␈α␈ving␈α4␈↓ ∧k␈ελr␈↓ ¬β␈εα+␈αλ2␈↓ ¬M␈ελp␈↓ ¬←␈εα-bit␈α
n␈α␈um␈α␈bers,␈αso␈αit␈αin␈α␈v␈α␈olv␈α␈es␈↓ 	↔␈ελO␈↓ 	1␈εα(␈↓ 	=␈ελr␈↓ 	M␈ελq␈↓ 	]␈εα)␈αcy␈α␈cles.␈αStep
␈βε↓␈↓ ↓H␈εαC6␈αrequires␈↓ βπ␈ελO␈↓ β!␈εα(␈↓ β-␈ελq␈↓ β=␈εα)␈αcy␈α␈cles,␈αand␈αit␈αis␈αdone␈α2␈↓ ε;␈ελr␈↓ εR␈εα+␈αλ1␈αtimes␈αper␈αiteration.␈αThe␈αrecursion
␈βε-␈↓ ↓H␈εαin␈α␈v␈α␈olv␈α␈ed␈αwhen␈αthe␈αalgorithm␈αessen␈α␈tially␈αin␈α␈v␈α␈ok␈α␈es␈α
itself␈α(by␈αreturning␈αto␈αstep␈αC3)
␈βεS␈↓ λB␈ε¬2
␈βεX␈↓ ↓H␈εαrequires␈↓ αO␈ελt␈↓ β ␈εαcy␈α␈cles,␈α∞2␈↓ ∧%␈ελr␈↓ ∧=␈εα+␈α	1␈α
times.␈α⊂Step␈α
C7␈α
requires␈↓ λ␈ελO␈↓ λ&␈εα(␈↓ λ2␈ελr␈↓ λQ␈εα)␈α
subtractions␈α
of␈↓ 
b␈ελp␈↓ 
t␈εα-bit
␈βεe␈↓ αZ␈εk␈↓ αh␈ε→␈␈ε¬1
␈βε}␈↓ 
8␈ε¬2
␈βπβ␈↓ ↓H␈εαn␈α␈um␈α␈bers␈αand␈αdivisions␈αof␈α2␈↓ ∧l␈ελp␈↓ ∧}␈εα-bit␈αby␈α(␈↓ ε↓␈εαlg␈↓ ε#␈εα2␈↓ ε5␈ελr␈↓ εE␈εα)-bit␈αn␈α␈um␈α␈bers,␈αso␈αit␈αrequires␈↓ 
α␈ελO␈↓ 
≤␈εα(␈↓ 
(␈ελr␈↓ 
G␈ελq␈↓ 
]␈εαlog␈↓ ⊃␈ελr␈↓  ␈εα)
␈βπ)␈↓ ε:␈ε¬2
␈βπ.␈↓ ↓H␈εαcy␈α␈cles.␈α↔Similarly,␈α⊃step␈α∂C8␈α⊂requires␈↓ ε∧␈ελO␈↓ ε≡␈εα(␈↓ ε*␈ελr␈↓ εH␈ελq␈↓ ε↑␈εαlog␈↓ π∩␈ελr␈↓ π"␈εα)␈α⊂cy␈α␈cles.␈α↔Step␈α⊂C9␈α⊂in␈α␈v␈α␈olv␈α␈es␈↓ 
Z␈ελO␈↓ 
u␈εα(␈↓ ↓␈ελr␈↓ ⊂␈ελq␈↓  ␈εα)
␈βπY␈↓ ↓H␈εαcy␈α␈cles,␈αand␈αC10␈αtak␈α␈es␈αhardly␈αan␈α␈y␈αtime␈αat␈αall.
␈βλ¬␈↓ α␈εαSumming␈α∞up,␈α∞w␈α␈e␈α
hav␈α␈e␈↓ ∧{␈ελT␈↓ ¬∀␈εα(␈↓ ¬ ␈ελn␈↓ ¬6␈εα)␈α=␈↓ ¬␈␈ελO␈↓ ε→␈εα(␈↓ ε%␈ελq␈↓ εA␈εα)␈α	+␈↓ πβ␈ελO␈↓ π≥␈εα(␈↓ π)␈ελq␈↓ πD␈εα)␈α	+␈↓ λε␈ελt␈↓ λK␈εα,␈α∞where␈α
(if␈↓ 	|␈ελq␈↓ 
→␈εα=␈↓ 
I␈ελq␈↓ 
r␈εαand
␈βλ∩␈↓ ε2␈εk␈↓ π6␈εk␈↓ λ⊃␈εk␈↓ λ ␈ε→␈␈ε¬␈α␈1␈↓ 
V␈εk
␈βλ0␈↓ ↓H␈ελr␈↓ ↓a␈εα=␈↓ α∂␈ελr␈↓ α+␈εα)␈αthe␈αmain␈αcon␈α␈tribution␈αto␈αthe␈αrunning␈αtime␈αsatis|es
␈βλ=␈↓ α≤␈εk
␈βλu␈↓ βi␈ε¬2␈↓ λD␈ε¬2
␈βλ{␈↓ ↓l␈ελt␈↓ α∂␈εα=␈↓ α=␈ελO␈↓ αW␈εα(␈↓ αc␈ελq␈↓ αt␈εα)␈αλ+␈↓ β4␈ελO␈↓ βN␈εα(␈↓ βZ␈ελr␈↓ βx␈ελq␈↓ ∧∞␈εαlog␈↓ ∧B␈ελr␈↓ ∧R␈εα)␈αλ+␈↓ ¬∩␈ελO␈↓ ¬,␈εα(␈↓ ¬8␈ελr␈↓ ¬H␈ελq␈↓ ¬X␈εα)␈αλ+␈αλ(2␈↓ ε6␈ελr␈↓ εN␈εα+␈αλ1)␈↓ π_␈ελO␈↓ π2␈εα(␈↓ π>␈ελq␈↓ πN␈εα)␈αλ+␈↓ λ∞␈ελO␈↓ λ(␈εα(␈↓ λ4␈ελr␈↓ λR␈ελq␈↓ λh␈εαlog␈↓ 	≤␈ελr␈↓ 	,␈εα)
␈β		␈↓ ↓w␈εk
␈β	 ␈↓ ε∨␈ε¬2
␈β	'␈↓ ¬=␈εα+␈↓ ¬i␈ελO␈↓ εβ␈εα(␈↓ ε∂␈ελr␈↓ ε.␈ελq␈↓ εD␈εαlog␈↓ εx␈ελr␈↓ πλ␈εα)␈αλ+␈↓ πH␈ελO␈↓ πb␈εα(␈↓ πn␈ελr␈↓ π⎇␈ελq␈↓ λ∞␈εα)␈αλ+␈↓ λN␈ελO␈↓ λh␈εα(␈↓ λt␈ελq␈↓ 	∧␈εα)␈αλ+␈αλ(2␈↓ 	b␈ελr␈↓ 	z␈εα+␈αλ1)␈↓ 
D␈ελt
␈β	4␈↓ 
N␈εk␈↓ 
]␈ε→␈␈ε¬1
␈β	V␈↓ αs␈ε¬2
␈β	]␈↓ α∂␈εα=␈↓ α=␈ελO␈↓ αW␈εα(␈↓ αc␈ελr␈↓ βα␈ελq␈↓ β_␈εαlog␈↓ βL␈ελr␈↓ β\␈εα)␈αλ+␈αλ(2␈↓ ∧:␈ελr␈↓ ∧Q␈εα+␈αλ1)␈↓ ¬≠␈ελt␈↓ ¬`␈εα.
␈β	j␈↓ ¬&␈εk␈↓ ¬5␈ε→␈␈ε¬␈α␈1
␈β
!␈↓ ↓H␈εαTh␈α␈us␈αthere␈αis␈αa␈αconstan␈α␈t␈↓ ∧R␈ελc␈↓ ∧l␈εαsuch␈αthat
␈β
f␈↓ ¬4␈ε¬2
␈β
l␈↓ ∧E␈ελt␈↓ ∧h␈ε⊗∀␈↓ ¬⊗␈ελc␈↓ ¬$␈ελr␈↓ ¬C␈ελq␈↓ ¬d␈εαlg␈↓ εε␈ελr␈↓ ε)␈εα+␈αλ(2␈↓ εs␈ελr␈↓ π↔␈εα+␈αλ1)␈↓ πa␈ελt␈↓ λ%␈εα.
␈β
y␈↓ ∧P␈εk␈↓ ¬P␈εk␈↓ ε∪␈εk␈↓ π␈εk␈↓ πl␈εk␈↓ πz␈ε→␈␈ε¬1
␈β
}␈↓ ¬4␈εk
␈β6␈↓ ↓H␈εαTo␈αcomplete␈αthe␈αestimation␈αof␈↓ ¬0␈ελt␈↓ ¬U␈εαw␈α␈e␈αcan␈αpro␈α␈v␈α␈e␈αby␈αbrute␈αforce␈αthat
␈βD␈↓ ¬:␈εk
␈β⎇␈↓ π∃␈∧⎇π∃αZ
␈β}␈↓ εq␈ε⊗p
␈β∧␈↓ εM␈ε¬2.5␈↓ π~␈ε¬lg␈↓ π5␈εq
␈β␈↓ ¬¬␈ελt␈↓ ¬)␈ε⊗∀␈↓ ¬W␈ελC␈↓ ¬t␈ελq␈↓ ε;␈εα2␈↓ 
p␈εα(18)
␈β
␈↓ πA␈ε
k␈↓ πM␈επ+1
␈β→␈↓ ¬⊂␈εk␈↓ ε↓␈εk␈↓ ε∂␈ε¬+1
␈βV␈↓ ↓H␈εαfor␈α	some␈α
constan␈α␈t␈↓ βd␈ελC␈↓ ∧↓␈εα.␈αLet␈α
us␈α	choose␈↓ ¬q␈ελC␈↓ ε_␈εα>␈α
20␈↓ εj␈ελc␈↓ εx␈εα,␈αand␈α	let␈α
us␈α
also␈α	tak␈α␈e␈↓ 	@␈ελC␈↓ 	g␈εαlarge␈α	enough
␈β
↓␈↓ ↓H␈εαso␈α∂that␈α∂(18)␈α∞is␈α∂valid␈α∂for␈↓ ∧Q␈ελk␈↓ ∧r␈ε⊗∀␈↓ ¬%␈ελk␈↓ ¬C␈εα,␈α⊂where␈↓ εH␈ελk␈↓ εu␈εαwill␈α∂be␈α∂speci|ed␈α∂belo␈α␈w.␈α∀Then␈α∂when
␈β
∞␈↓ ¬5␈ε¬0␈↓ εW␈ε¬0
␈β
,␈↓ ↓H␈ελk␈↓ ↓c␈εα>␈↓ α⊃␈ελk␈↓ α0␈εα,␈αlet␈↓ αz␈ελQ␈↓ β*␈εα=␈↓ βX␈εαlg␈↓ βz␈ελq␈↓ ∧⊗␈εα,␈↓ ∧,␈ελR␈↓ ∧]␈εα=␈↓ ¬␈εαlg␈↓ ¬-␈ελr␈↓ ¬I␈εα;␈αw␈α␈e␈αhav␈α␈e␈αby␈αinduction
␈β
9␈↓ α!␈ε¬0␈↓ β∩␈εk␈↓ ∧π␈εk␈↓ ∧E␈εk␈↓ ¬:␈εk
␈β
s␈↓ πg␈∧
sπgα!
␈β
t␈↓ πC␈ε⊗p
␈β
{␈↓ ∧B␈ε¬2␈↓ π≡␈ε¬2␈α↓.5␈↓ πg␈εQ
␈β∞↓␈↓ β7␈ελt␈↓ β[␈ε⊗∀␈↓ ∧	␈ελc␈↓ ∧↔␈ελq␈↓ ∧2␈ελr␈↓ ∧W␈εαlg␈↓ ∧y␈ελr␈↓ ¬≤␈εα+␈αλ(2␈↓ ¬f␈ελr␈↓ ε	␈εα+␈αλ1)␈↓ εS␈ελC␈↓ εq␈ελq␈↓ π␈εα2
␈β∞β␈↓ π{␈ε
k
␈β∞∞␈↓ βB␈εk␈↓ ∧$␈εk␈↓ ¬ε␈εk␈↓ ¬s␈εk␈↓ ε}␈εk
␈β∞∪␈↓ ∧B␈εk
␈β∞6␈↓ ¬H␈∧∞6¬HαZ
␈β∞7␈↓ ¬$␈ε⊗p
␈β∞=␈↓ ∧␈␈ε¬2.5␈↓ ¬L␈ε¬lg␈↓ ¬h␈εq
␈β∞D␈↓ β[␈εα=␈↓ ∧	␈ελC␈↓ ∧&␈ελq␈↓ ∧m␈εα2␈↓ ε!␈εα(␈↓ ε-␈ελ⊃␈↓ εU␈εα+␈↓ π↓␈ελ⊃␈↓ π"␈εα),
␈β∞F␈↓ ¬s␈ε
k␈↓ ¬␈␈επ+1
␈β∞R␈↓ ∧3␈εk␈↓ ∧B␈ε¬+␈α␈1␈↓ ε?␈ε¬1␈↓ π∪␈ε¬2
␈β∞o␈↓ ↓H␈εαwhere
␈β∂␈↓ ∧∀␈ελc␈↓ εv␈εα1
␈β∂∃␈↓ ¬n␈∧∂∃¬nαC
␈β∂⊗␈↓ ¬J␈ε⊗p
␈β∂≤␈↓ ∧h␈εR␈↓ ¬	␈ε→␈␈ε¬2.5␈↓ ¬n␈εQ
␈β∂≥␈↓ πN␈ε→␈␈↓ πk␈εR
␈β∂#␈↓ β0␈ελ⊃␈↓ β[␈εα=␈↓ ∧.␈ελR␈↓ ∧V␈εα2␈↓ ε;␈εα<␈↓ π∃␈ελR␈↓ π<␈εα2␈↓ λ⊗␈εα<␈α
0.05,
␈β∂$␈↓ ∧|␈ε
k␈↓ εα␈ε
k␈↓ ε∂␈επ+1
␈β∂%␈↓ λ␈ε
k
␈β∂0␈↓ βB␈ε¬1␈↓ ∧G␈εk␈↓ π.␈εk
␈β∂3␈↓ ∧
␈∧∂3∧
α≡␈↓ εm␈∧∂3εmα$
␈β∂;␈↓ ∧
␈ελC␈↓ εm␈εα20
␈β∂d␈↓ ∧	␈ε↓∩␈↓ ¬λ␈ε↓∪
␈β∂g␈↓ ∧m␈εα1
␈β∂o␈↓ εβ␈∧∂oεβα!
␈β∂p␈↓ ¬←␈ε⊗p␈↓ εd␈∧∂pεdαC
␈β∂q␈↓ ε@␈ε⊗p
␈β∂w␈↓ ¬0␈ε¬2␈α↓.5(␈↓ εβ␈εQ␈↓ ε#␈ε→␈␈↓ εd␈εQ␈↓ π&␈ε¬)
␈β∂x␈↓ πz␈ε→␈␈ε¬␈α␈1␈α↓/4
␈β∂}␈↓ β0␈ελ⊃␈↓ β[␈εα=␈↓ ∧∨␈εα2␈αλ+␈↓ ¬≡␈εα2␈↓ π:␈ε⊗!␈↓ πh␈εα2␈↓ λL␈εα<␈α
0.85,
␈β∂␈␈↓ ε↔␈ε
k␈↓ εx␈ε
k␈↓ π∧␈επ+1
␈β⊂␈↓ βB␈ε¬2
␈β⊂∞␈↓ ∧i␈∧⊂∞∧iα≤
␈β⊂⊗␈↓ ∧i␈ελr
␈β⊂$␈↓ ∧v␈εk
␈β⊂\␈↓ ↓H␈εαsince
␈β⊂a␈↓ ¬w␈ε↓q
␈β⊂q␈↓ ∧u␈ε↓p␈↓ π∧␈ε↓p␈↓ λ⊂␈ε↓p
␈β⊂s␈↓ βK␈ε↓p
␈β⊂|␈↓ ε≠␈∧⊂|ε≠α↓B
␈β⊃␈↓ ¬→␈∧⊃¬→α'␈↓ π(␈∧⊃π(α'␈↓ λ4␈∧⊃λ4α'
␈β⊃∞␈↓ βo␈∧⊃∞βoαR
␈β⊃⊃␈↓ 	↔␈ε¬1
␈β⊃∀␈↓ βo␈ελQ␈↓ ∧I␈ε⊗␈␈↓ ¬→␈ελQ␈↓ ¬I␈εα=␈↓ ε≠␈ελQ␈↓ εJ␈εα+␈ε⊗␈αλb␈↓ π(␈ελQ␈↓ πN␈ε⊗c␈↓ πd␈ε⊗␈␈↓ λ4␈ελQ␈↓ λe␈ε⊗!
␈β⊃"␈↓ ∧π␈εk␈↓ ∧∃␈ε¬+1␈↓ ¬1␈εk␈↓ ε3␈εk␈↓ π@␈εk␈↓ λL␈εk
␈β⊃%␈↓ 	↔␈∧⊃%	↔α∂
␈β⊃'␈↓ 	↔␈ε¬2
␈β∪(

␈β↓Y␈↓ ↓H␈εα4.3.3␈ε∞␈↓ πλHO␈α␈W␈α	F␈α|AST␈αλCAN␈α	WE␈α	MU␈α␈L␈α}TIP␈α␈L␈α}Y␈εα␈α␈?␈↓ 
v␈εα283
␈βα(␈↓ ↓H␈εαas␈↓ ↓s␈ελk␈↓ α∂␈ε⊗!␈α
1␈εα.␈αIt␈αfollo␈α␈ws␈αthat␈αw␈α␈e␈αcan␈α|nd␈↓ ε∨␈ελk␈↓ εH␈εαsuch␈αthat␈↓ πh␈ελ⊃␈↓ λ∩␈εα<␈α
0.95␈αfor␈αall␈↓ 	u␈ελk␈↓ 
⊃␈εα>␈↓ 
?␈ελk␈↓ 
]␈εα,␈αand
␈βα5␈↓ ε.␈ε¬0␈↓ πz␈ε¬2␈↓ 
N␈ε¬0
␈βαS␈↓ ↓H␈εαthis␈αcompletes␈αthe␈αproof␈αof␈α(18)␈αby␈αinduction.
␈βα␈␈↓ α␈εαFinally,␈αtherefore,␈α
w␈α␈e␈αmay␈αcompute␈↓ εL␈ελT␈↓ εe␈εα(␈↓ εq␈ελn␈↓ ππ␈εα).␈α
Since␈↓ λλ␈ελn␈↓ λ(␈εα>␈↓ λV␈ελq␈↓ 	%␈εα+␈↓ 	Q␈ελq␈↓ 
_␈εα,␈αw␈α␈e␈αhav␈α␈e
␈ββ␈↓ λc␈εk␈↓ λr␈ε→␈␈ε¬1␈↓ 	↑␈εk␈↓ 	m␈ε→␈␈ε¬2
␈ββ*␈↓ ↓H␈ελq␈↓ α_␈εα<␈↓ αF␈ελn␈↓ α\␈εα;␈αhence
␈ββ8␈↓ ↓U␈εk␈↓ ↓c␈ε→␈␈ε¬1
␈ββ␈␈↓ βZ␈∧β␈βZαZ␈↓ ¬-␈∧β␈¬-α2␈↓ 
≥␈∧β␈
≥α2
␈β∧␈↓ β6␈ε⊗p␈↓ ¬	␈ε⊗p␈↓ 	y␈ε⊗p
␈β∧π␈↓ β+␈ε→b␈↓ β←␈ε¬lg␈↓ βz␈εq␈↓ ∧4␈ε→c␈↓ ¬2␈ε¬lg␈↓ ¬M␈εn␈↓ 
"␈ε¬lg␈↓ 
=␈εn
␈β∧
␈↓ α≠␈ελr␈↓ αk␈εα=␈↓ β→␈εα2␈↓ ∧I␈εα<␈↓ ∧w␈εα2␈↓ ¬←␈εα,␈↓ ε7␈εαand␈↓ π9␈ελq␈↓ π←␈εα=␈↓ λ
␈ελr␈↓ λS␈ελq␈↓ 	$␈εα<␈↓ 	R␈ελn␈↓ 	g␈εα2␈↓ 
O␈εα.
␈β∧∂␈↓ ∧ε␈ε
k␈↓ ∧∩␈ε≠␈␈επ1
␈β∧~␈↓ α'␈εk␈↓ α6␈ε→␈␈ε¬1␈↓ πF␈εk␈↓ λ→␈εk␈↓ λ(␈ε→␈␈ε¬1␈↓ λ`␈εk␈↓ λo␈ε→␈␈ε¬␈α␈1
␈β∧e␈↓ ↓H␈εαTh␈α␈us
␈β¬∧␈↓ ¬M␈∧¬∧¬Mα8␈↓ π%␈∧¬∧π%α2␈↓ λG␈∧¬∧λGα2
␈⬬␈↓ ¬)␈ε⊗p␈↓ π↓␈ε⊗p␈↓ λ#␈ε⊗p
␈β¬␈↓ ¬∧␈ε¬2.5␈↓ ¬R␈ε¬lg␈↓ ¬m␈εq␈↓ π*␈ε¬lg␈↓ πE␈εn␈↓ πW␈ε¬+2␈α↓.5(␈↓ λK␈ε¬lg␈↓ λg␈εn␈↓ λy␈ε¬+␈α␈1␈α↓)
␈β¬∩␈↓ β=␈ελt␈↓ ∧␈ε⊗∀␈↓ ∧9␈ελC␈↓ ∧W␈ελq␈↓ ∧r␈εα2␈↓ ε∂␈εα<␈↓ ε=␈ελC␈↓ εZ␈ελn␈↓ εo␈εα2␈↓ 	-␈εα,
␈β¬∃␈↓ ¬x␈ε
k
␈β¬ ␈↓ βH␈εk␈↓ βV␈ε→␈␈ε¬1␈↓ ∧d␈εk
␈β¬Y␈↓ ↓H␈εαand,␈αsince␈↓ αp␈ελT␈↓ β	␈εα(␈↓ β∃␈ελn␈↓ β+␈εα)␈α
=␈↓ βo␈ελO␈↓ ∧	␈εα(␈↓ ∧∃␈ελq␈↓ ∧0␈εα)␈αλ+␈↓ ∧p␈ελt␈↓ ¬5␈εα,␈αw␈α␈e␈αhav␈α␈e␈α|nally␈αderiv␈α␈ed␈αthe␈αfollo␈α␈wing␈αtheorem:
␈β¬f␈↓ ∧"␈εk␈↓ ∧{␈εk␈↓ ¬
␈ε→␈␈ε¬␈α␈1
␈βε≡␈↓ ↓H␈ε∩Theorem␈α
C.␈ε∂␈α⊗There␈α
is␈α
a␈αconstan␈α␈t␈↓ ¬N␈ελc␈↓ ¬t␈ε∂such␈αthat␈α
the␈αex␈α␈ecution␈α
time␈αof␈α
Algorithm␈α
C
␈βε+␈↓ ¬[␈ε¬0
␈βεE␈↓ ∧∞␈∧εE∧∞α2
␈βεF␈↓ βj␈ε⊗p
␈βεM␈↓ βE␈ε¬3.5␈↓ ∧∩␈ε¬lg␈↓ ∧.␈εn
␈βεS␈↓ ↓H␈ε∂is␈αless␈αthan␈↓ βα␈ελc␈↓ β≥␈ελn␈↓ β3␈εα2␈↓ ∧K␈ε∂cy␈α␈cles.
␈βεX␈↓ ¬X␈∧εX¬X≠∂
␈βεa␈↓ β∂␈ε¬0
␈βπ∃␈↓ β`␈∧π∃β`α2␈↓ ¬s␈∧π∃¬sα2
␈βπ⊗␈↓ β<␈ε⊗p␈↓ ¬O␈ε⊗p
␈βπ≥␈↓ β↔␈ε¬3.5␈↓ βe␈ε¬lg␈↓ ∧␈εn␈↓ ∧q␈ε¬1+3␈α↓.5/␈↓ ¬x␈ε¬lg␈↓ ε∪␈εn
␈βπ#␈↓ α␈εαSince␈↓ αo␈ελn␈↓ β¬␈εα2␈↓ ∧%␈εα=␈↓ ∧[␈ελn␈↓ ε%␈εα,␈α∪this␈α⊃result␈α∩is␈α⊃noticeably␈α⊃stronger␈α⊃than
␈βπN␈↓ ↓H␈εαTheorem␈αA.␈αBy␈αadding␈α
a␈αfew␈αcomplications␈αto␈αthe␈α
algorithm,␈αpushing␈αthe␈αideas
␈βπy␈↓ ↓H␈εαto␈α
their␈αapparen␈α␈t␈αlimits␈α
(see␈αex␈α␈ercise␈α5),␈αw␈α␈e␈αcan␈α
impro␈α␈v␈α␈e␈αthe␈αestimated␈α
ex␈α␈ecution
␈βλ%␈↓ ↓H␈εαtime␈αto
␈βλD␈↓ ε←␈∧λDε←αA
␈βλE␈↓ ε;␈ε⊗p
␈βλL␈↓ ε←␈ε¬2␈↓ εs␈ε¬lg␈↓ π∞␈εn
␈βλR␈↓ ∧o␈ελT␈↓ ¬λ␈εα(␈↓ ¬∀␈ελn␈↓ ¬*␈εα)␈α
=␈↓ ¬n␈ελO␈↓ ελ␈εα(␈↓ ε∀␈ελn␈↓ ε)␈εα2␈↓ π&␈εαlog␈↓ πZ␈ελn␈↓ πo␈εα).␈↓ 
p␈εα(19)
␈β	2␈↓ ↓H␈ε∩B.␈α∞A␈α∂modular␈α∂method.␈εα␈α≡There␈α∂is␈α∂another␈α∂way␈α∞to␈α∂m␈α␈ultiply␈α∂large␈α∂n␈α␈um␈α␈bers␈α∞v␈α␈ery
␈β	]␈↓ ↓H␈εαrapidly,␈αbased␈αon␈αthe␈αideas␈αof␈α
modular␈αarithmetic␈αas␈αpresen␈α␈ted␈αin␈αSection␈α4.3.2.
␈β
λ␈↓ ↓H␈εαIt␈αis␈α
v␈α␈ery␈αhard␈α
to␈α
believ␈α␈e␈αat␈α
|rst␈αthat␈α
this␈α
method␈αcan␈α
be␈αof␈α
advan␈α␈tage,␈α
since␈αa
␈β
4␈↓ ↓H␈εαm␈α␈ultiplication␈α
algorithm␈α	based␈α
on␈α
modular␈α
arithmetic␈α
m␈α␈ust␈α
include␈α
the␈α
choice␈α	of
␈β
←␈↓ ↓H␈εαmoduli␈α
and␈α
the␈α∞con␈α␈v␈α␈ersion␈α
of␈α
n␈α␈um␈α␈bers␈α∞in␈α␈to␈α
and␈α
out␈α∞of␈α
modular␈α
represen␈α␈tation,
␈β
␈↓ ↓H␈εαbesides␈α∂the␈α∂actual␈α⊂m␈α␈ultiplication␈α∂operation␈α∂itself.␈α⊗In␈α∂spite␈α⊂of␈α∂these␈α∂formidable
␈β5␈↓ ↓H␈εαdi}culties,␈α
A.␈α
Sch␈↓ βh␈εα∪␈↓ βh␈εαo␈↓ βz␈εαnhage␈α
disco␈α␈v␈α␈ered␈α
that␈α∞all␈α
of␈α
these␈α
operations␈α
can␈α
be␈α
carried
␈β`␈↓ ↓H␈εαout␈αquite␈αrapidly.
␈β␈↓ α␈εαIn␈αorder␈αto␈αunderstand␈αthe␈αessen␈α␈tial␈αmechanism␈αof␈αSch␈↓ λf␈εα∪␈↓ λf␈εαo␈↓ λx␈εαnhage's␈αmethod,␈αw␈α␈e
␈β7␈↓ ↓H␈εαshall␈αlook␈αat␈αa␈αspecial␈αcase.␈αConsider␈αthe␈αsequence␈αde|ned␈αby␈αthe␈αrules
␈β
⊂␈↓ ∧]␈ελq␈↓ ¬β␈εα=␈α
1,␈↓ ε≠␈ελq␈↓ εk␈εα=␈α
3␈↓ π+␈ελq␈↓ πO␈ε⊗␈␈εα␈αλ1,␈↓ 
p␈εα(20)
␈β
≥␈↓ ∧j␈ε¬0␈↓ ε(␈εk␈↓ ε6␈ε¬+1␈↓ π8␈εk
␈β
c␈↓ β<␈εk␈↓ ∧∃␈εk␈↓ ∧$␈ε→␈␈ε¬␈α␈1␈↓ εv␈εk
␈β
e␈↓ εF␈ε¬1
␈β
h␈↓ ↓H␈εαso␈α∂that␈↓ αI␈ελq␈↓ αu␈εα=␈↓ β*␈εα3␈↓ βU␈ε⊗␈␈↓ ∧β␈εα3␈↓ ∧Y␈ε⊗␈␈↓ ¬λ␈ε⊗↓␈αε↓␈αε↓␈↓ ¬<␈ε⊗␈␈εα␈α1␈α⊂=␈↓ εX␈εα(␈↓ εd␈εα3␈↓ π∂␈εα+␈α1).␈α↔We␈α⊂will␈α⊂study␈α⊂a␈α∂procedure
␈β
u␈↓ αV␈εk
␈β
x␈↓ εF␈∧
xεFα∂
␈β
{␈↓ εF␈ε¬2
␈β∞∪␈↓ ↓H␈εαthat␈α⊂m␈α␈ultiplies␈α⊂(18␈↓ βs␈ελq␈↓ ∧~␈εα+␈α
8)-bit␈α⊃n␈α␈um␈α␈bers,␈α⊃in␈α⊂terms␈α⊂of␈α⊃a␈α⊂method␈α⊂for␈α⊂m␈α␈ultiplying
␈β∞!␈↓ ∧␈εk
␈β∞>␈↓ ↓H␈εα(18␈↓ ↓x␈ελq␈↓ αH␈εα+␈α
8)-bit␈α∞n␈α␈um␈α␈bers.␈α∪Th␈α␈us,␈α∂if␈α∂w␈α␈e␈α∞kno␈α␈w␈α∂ho␈α␈w␈α∞to␈α∂m␈α␈ultiply␈α∞n␈α␈um␈α␈bers␈α∞having
␈β∞L␈↓ α¬␈εk␈↓ α∪␈ε→␈␈ε¬1
␈β∞j␈↓ ↓H␈εα(18␈↓ ↓x␈ελq␈↓ α→␈εα+␈αε8)␈α
=␈α
26␈αbits,␈α
the␈αprocedure␈α
to␈αbe␈α
described␈αwill␈α
sho␈α␈w␈αus␈α
ho␈α␈w␈αto␈α
m␈α␈ultiply
␈β∞w␈↓ α¬␈ε¬0
␈β∂∃␈↓ ↓H␈εαn␈α␈um␈α␈bers␈α∞of␈α∂(18␈↓ β7␈ελq␈↓ β]␈εα+␈α
8)␈α∞=␈α∂44␈α∂bits,␈α∂then␈α∂98␈α∂bits,␈α⊂then␈α∞260␈α∂bits,␈α⊂etc.,␈α∂ev␈α␈en␈α␈tually
␈β∂"␈↓ βD␈ε¬1
␈β∂@␈↓ ↓H␈εαincreasing␈αthe␈αn␈α␈um␈α␈ber␈αof␈αbits␈αby␈αalmost␈αa␈αfactor␈αof␈α3␈αat␈αeach␈αstep.
␈β∂l␈↓ α␈εαLet␈↓ αN␈ελp␈↓ αw␈εα=␈α
18␈↓ βI␈ελq␈↓ βl␈εα+␈αλ8.␈αWhen␈αm␈α␈ultiplying␈↓ εh␈ελp␈↓ ππ␈εα-bit␈αn␈α␈um␈α␈bers,␈αthe␈αidea␈αis␈αto␈αuse␈αthe
␈β∂y␈↓ α←␈εk␈↓ βV␈εk␈↓ εy␈εk
␈β⊂↔␈↓ ↓H␈εαsix␈αmoduli
␈β⊂a␈↓ βE␈ε¬6␈↓ βS␈εq␈↓ βk␈ε→␈␈ε¬␈α␈1␈↓ ε%␈ε¬6␈↓ ε3␈εq␈↓ εK␈ε¬+1
␈β⊂b␈↓ 	¬␈ε¬6␈↓ 	∀␈εq␈↓ 	+␈ε¬+2
␈β⊂f␈↓ αN␈ελm␈↓ β¬␈εα=␈↓ β3␈εα2␈↓ ∧≡␈ε⊗␈␈εα␈αλ1,␈↓ ¬.␈ελm␈↓ ¬e␈εα=␈↓ ε∪␈εα2␈↓ ε}␈ε⊗␈␈εα␈αλ1,
␈β⊂g␈↓ λ∞␈ελm␈↓ λE␈εα=␈↓ λs␈εα2␈↓ 	↑␈ε⊗␈␈εα␈αλ1,
␈β⊂j␈↓ β↑␈ε
k␈↓ ε>␈ε
k
␈β⊂k␈↓ 	∨␈ε
k
␈β⊂t␈↓ αl␈ε¬1␈↓ ¬L␈ε¬2␈↓ λ-␈ε¬3
␈β⊂}␈↓ 
p␈εα(21)
␈β⊃↔␈↓ βE␈ε¬6␈↓ βS␈εq␈↓ βk␈ε¬+␈α␈3␈↓ ε%␈ε¬6␈↓ ε3␈εq␈↓ εK␈ε¬+5
␈β⊃_␈↓ 	¬␈ε¬6␈↓ 	∀␈εq␈↓ 	+␈ε¬+7
␈β⊃≤␈↓ αN␈ελm␈↓ β¬␈εα=␈↓ β3␈εα2␈↓ ∧≡␈ε⊗␈␈εα␈αλ1,␈↓ ¬.␈ελm␈↓ ¬e␈εα=␈↓ ε∪␈εα2␈↓ ε}␈ε⊗␈␈εα␈αλ1,
␈β⊃≥␈↓ λ∞␈ελm␈↓ λE␈εα=␈↓ λs␈εα2␈↓ 	↑␈ε⊗␈␈εα␈αλ1.
␈β⊃ ␈↓ β↑␈ε
k␈↓ ε>␈ε
k
␈β⊃!␈↓ 	∨␈ε
k
␈β⊃*␈↓ αl␈ε¬4␈↓ ¬L␈ε¬5␈↓ λ-␈ε¬6
␈β∪(

␈β↓Y␈↓ ↓H␈εα284␈↓ α=␈ε∞A␈α␈RITH␈α␈METIC␈εα␈↓ 
b4.3.3
␈βα(␈↓ ↓H␈εαThese␈αmoduli␈αare␈αrelativ␈α␈ely␈αprime,␈αby␈αEq.␈α4.3.2↑18,␈αsince␈αthe␈αexponen␈α␈ts
␈βαw␈↓ α]␈εα6␈↓ αo␈ελq␈↓ β∪␈ε⊗␈␈εα␈αλ1,␈α*6␈↓ ∧↔␈ελq␈↓ ∧;␈εα+␈αλ1,␈α*6␈↓ ¬?␈ελq␈↓ ¬b␈εα+␈αλ2,␈α*6␈↓ εf␈ελq␈↓ π
␈εα+␈αλ3,␈α*6␈↓ λ∞␈ελq␈↓ λ1␈εα+␈αλ5,␈α*6␈↓ 	5␈ελq␈↓ 	Y␈εα+␈αλ7␈↓ 
p␈εα(22)
␈ββ¬␈↓ α|␈εk␈↓ ∧$␈εk␈↓ ¬L␈εk␈↓ εs␈εk␈↓ λ≠␈εk␈↓ 	B␈εk
␈ββF␈↓ ↓H␈εαare␈α
always␈α
relativ␈α␈ely␈α
prime␈α
(see␈α
ex␈α␈ercise␈α
6).␈αThe␈α
six␈α
moduli␈α
in␈α
(21)␈α
are␈α
capable␈α
of
␈ββl␈↓ λ7␈ε¬36␈↓ λS␈εq␈↓ λk␈ε¬+16␈↓ 	p␈ε¬2␈↓ 	␈␈εp
␈ββq␈↓ ↓H␈εαrepresen␈α␈ting␈αn␈α␈um␈α␈bers␈αup␈α
to␈↓ ¬∧␈ελm␈↓ ¬/␈εα=␈↓ ¬]␈ελm␈↓ ε
␈ελm␈↓ ε7␈ελm␈↓ εd␈ελm␈↓ π⊃␈ελm␈↓ π>␈ελm␈↓ πv␈εα>␈↓ λ%␈εα2␈↓ 	/␈εα=␈↓ 	↑␈εα2␈↓ 
→␈εα,␈α
so␈αthere
␈ββu␈↓ λ←␈ε
k␈↓ 

␈ε
k
␈ββ␈␈↓ ¬|␈ε¬1␈↓ ε)␈ε¬2␈↓ εV␈ε¬3␈↓ πβ␈ε¬4␈↓ π0␈ε¬5␈↓ π]␈ε¬6
␈β∧≥␈↓ ↓H␈εαis␈α
no␈α
chance␈α∞of␈α
o␈α␈v␈α␈er⎇o␈α␈w␈α
in␈α∞the␈α
m␈α␈ultiplication␈α∞of␈↓ πP␈ελp␈↓ πo␈εα-bit␈α∞n␈α␈um␈α␈bers␈↓ 	F␈ελu␈↓ 	i␈εαand␈↓ 
1␈ελv␈↓ 
C␈εα.␈α⊂Th␈α␈us
␈β∧*␈↓ πa␈εk
␈β∧H␈↓ ↓H␈εαw␈α␈e␈αmay␈αuse␈αthe␈αfollo␈α␈wing␈αmethod,␈αwhen␈↓ εL␈ελk␈↓ εg␈εα>␈α
0:
␈⬬␈↓ ↓b␈εαa)␈↓ α␈εαCompute␈↓ β-␈ελu␈↓ β`␈εα=␈↓ ∧∪␈ελu␈↓ ∧/␈εαmod␈↓ ∧y␈ελm␈↓ ¬&␈εα,␈↓ ¬@␈εα.␈αε.␈αε.␈↓ ¬p␈εα,␈↓ ε
␈ελu␈↓ ε=␈εα=␈↓ εp␈ελu␈↓ π␈εαmod␈↓ πV␈ελm␈↓ λβ␈εα;␈α⊃and␈↓ λg␈ελv␈↓ 	∃␈εα=␈↓ 	I␈ελv␈↓ 	a␈εαmod␈↓ 
+␈ελm␈↓ 
X␈εα,␈↓ 
r␈εα.␈αε.␈αε.␈↓ "␈εα,
␈β¬∪␈↓ βB␈ε¬1␈↓ ¬_␈ε¬1␈↓ ε∨␈ε¬6␈↓ πu␈ε¬6␈↓ λw␈ε¬1␈↓ 
J␈ε¬1
␈β¬1␈↓ α␈ελv␈↓ α4␈εα=␈↓ αb␈ελv␈↓ α{␈εαmod␈↓ βE␈ελm␈↓ βr␈εα.
␈β¬>␈↓ α≤␈ε¬6␈↓ βd␈ε¬6
␈β¬e␈↓ ↓`␈εαb)␈↓ α␈εαMultiply␈↓ β"␈ελu␈↓ βT␈εαby␈↓ ∧
␈ελv␈↓ ∧(␈εα,␈↓ ∧A␈ελu␈↓ ∧r␈εαby␈↓ ¬(␈ελv␈↓ ¬G␈εα,␈↓ ¬`␈εα.␈αε.␈αε.␈↓ ε⊂␈εα,␈↓ ε(␈ελu␈↓ εZ␈εαby␈↓ π⊂␈ελv␈↓ π.␈εα.␈α∪These␈α∞are␈α∂n␈α␈um␈α␈bers␈α∞of␈α∞at␈α∞most
␈β¬r␈↓ β7␈ε¬1␈↓ ∧~␈ε¬1␈↓ ∧U␈ε¬2␈↓ ¬8␈ε¬2␈↓ ε=␈ε¬6␈↓ π ␈ε¬6
␈βε⊂␈↓ α␈εα6␈↓ α≡␈ελq␈↓ α@␈εα+␈απ7␈α
=␈α
18␈↓ βY␈ελq␈↓ ∧&␈εα+␈απ1␈α
<␈↓ ¬≠␈ελp␈↓ ¬q␈εαbits,␈αso␈αthe␈αm␈α␈ultiplications␈αcan␈αbe␈αperformed
␈βε≡␈↓ α+␈εk␈↓ βf␈εk␈↓ βu␈ε→␈␈ε¬␈α␈1␈↓ ¬,␈εk␈↓ ¬;␈ε→␈␈ε¬1
␈βε;␈↓ α␈εαby␈αusing␈αthe␈αassumed␈↓ ∧l␈ελp␈↓ ¬7␈εα-bit␈αm␈α␈ultiplication␈αprocedure.
␈βεI␈↓ ∧⎇␈εk␈↓ ¬␈ε→␈␈ε¬␈α␈1
␈βεp␈↓ ↓d␈εαc)␈↓ α␈εαCompute␈↓ β*␈ελw␈↓ βZ␈εα=␈↓ ∧λ␈ελu␈↓ ∧+␈ελv␈↓ ∧O␈εαmod␈↓ ¬→␈ελm␈↓ ¬F␈εα,␈↓ ¬\␈ελw␈↓ ε
␈εα=␈↓ ε;␈ελu␈↓ ε]␈ελv␈↓ πα␈εαmod␈↓ πL␈ελm␈↓ πy␈εα,␈↓ λ∂␈εα.␈αε.␈αε.␈↓ λ?␈εα,␈↓ λU␈ελw␈↓ 	¬␈εα=␈↓ 	3␈ελu␈↓ 	V␈ελv␈↓ 	z␈εαmod␈↓ 
D␈ελm␈↓ 
q␈εα.
␈βε⎇␈↓ βB␈ε¬1␈↓ ∧≥␈ε¬1␈↓ ∧;␈ε¬1␈↓ ¬8␈ε¬1␈↓ ¬t␈ε¬2␈↓ εO␈ε¬2␈↓ εm␈ε¬2␈↓ πj␈ε¬2␈↓ λl␈ε¬6␈↓ 	G␈ε¬6␈↓ 	f␈ε¬6␈↓ 
c␈ε¬6
␈βπ$␈↓ ↓`␈εαd)␈↓ α␈εαCompute␈↓ β*␈ελw␈↓ βQ␈εαsuch␈αthat␈α0␈ε⊗␈α
∀␈↓ ¬;␈ελw␈↓ ¬`␈εα<␈↓ ε∞␈ελm␈↓ ε-␈εα,␈↓ εC␈ελw␈↓ εd␈εαmod␈↓ π.␈ελm␈↓ πe␈εα=␈↓ λ∪␈ελw␈↓ λ9␈εα,␈↓ λO␈εα.␈αε.␈αε.␈↓ λ␈␈εα,␈↓ 	∃␈ελw␈↓ 	6␈εαmod␈↓ 
␈ελm␈↓ 
7␈εα=␈↓ 
e␈ελw␈↓ ␈εα.
␈βπ2␈↓ πM␈ε¬1␈↓ λ+␈ε¬1␈↓ 
∨␈ε¬6␈↓ 
⎇␈ε¬6
␈βπb␈↓ α␈εαLet␈↓ αO␈ελt␈↓ αv␈εαbe␈α
the␈α∞amoun␈α␈t␈α
of␈α
time␈α∞needed␈α
for␈α
this␈α∞process.␈α⊂It␈α
is␈α
not␈α∞hard␈α
to␈α
see
␈βπo␈↓ αZ␈εk
␈βλλ␈↓ 
M␈εe
␈βλ
␈↓ ↓H␈εαthat␈α
operation␈α
(a)␈α
tak␈α␈es␈↓ ∧M␈ελO␈↓ ∧g␈εα(␈↓ ∧s␈ελp␈↓ ¬∩␈εα)␈α
cy␈α␈cles,␈α∞since␈α
the␈α
determination␈α
of␈↓ 	J␈ελu␈↓ 	e␈εαmod␈↓ 
/␈εα(␈↓ 
;␈εα2␈↓ 
b␈ε⊗␈␈εα␈αλ1)
␈βλ~␈↓ ¬∧␈εk
␈βλ8␈↓ ↓H␈εαis␈α∞quite␈α∞simple␈α∞(lik␈α␈e␈α∞\casting␈α∞out␈α∂nines"),␈α∞as␈α∞sho␈α␈wn␈α∂in␈α∞Section␈α∞4.3.2.␈α∩Similarly,
␈βλc␈↓ ↓H␈εαoperation␈α(c)␈α
tak␈α␈es␈↓ β{␈ελO␈↓ ∧∃␈εα(␈↓ ∧!␈ελp␈↓ ∧@␈εα)␈α
cy␈α␈cles.␈α∞Operation␈α
(b)␈α
requires␈αessen␈α␈tially␈α
6␈↓ 	v␈ελt␈↓ 
G␈εαcy␈α␈cles.
␈βλq␈↓ ∧2␈εk␈↓ 
↓␈εk␈↓ 
⊂␈ε→␈␈ε¬␈α␈1
␈β	∂␈↓ ↓H␈εαThis␈αλleav␈α␈es␈αλus␈α	with␈αλoperation␈α	(d),␈α	which␈αλseems␈αλto␈α	be␈αλquite␈α	a␈αλdi}cult␈αλcomputation;
␈β	:␈↓ ↓H␈εαbut␈α∞Sch␈↓ αD␈εα∪␈↓ αD␈εαo␈↓ αV␈εαnhage␈α∂has␈α∂found␈α∂an␈α∂ingenious␈α∞way␈α∂to␈α∂perform␈α∂step␈α∂(d)␈α∞in␈↓ 
↓␈ελO␈↓ 
≠␈εα(␈↓ 
'␈ελp␈↓ 
M␈εαlog␈↓ ↓␈ελp␈↓  ␈εα)
␈β	G␈↓ 
8␈εk␈↓ ∩␈εk
␈β	e␈↓ ↓H␈εαcy␈α␈cles,␈αand␈αthis␈αis␈αthe␈αcrux␈αof␈αthe␈αmethod.␈αAs␈αa␈αconsequence,␈αw␈α␈e␈αhav␈α␈e
␈β
4␈↓ ∧r␈ελt␈↓ ¬∃␈εα=␈α
6␈↓ ¬U␈ελt␈↓ ε!␈εα+␈↓ εM␈ελO␈↓ εg␈εα(␈↓ εs␈ελp␈↓ π→␈εαlog␈↓ πM␈ελp␈↓ πm␈εα).
␈β
A␈↓ ∧|␈εk␈↓ ¬`␈εk␈↓ ¬n␈ε→␈␈ε¬1␈↓ π∧␈εk␈↓ π↑␈εk
␈β
}␈↓ β∂␈εk␈↓ β≡␈ε¬+2
␈ββ␈↓ ↓H␈εαSince␈↓ α&␈ελp␈↓ αO␈εα=␈↓ α⎇␈εα3␈↓ βQ␈εα+␈αλ17,␈αw␈α␈e␈αcan␈αsho␈α␈w␈αthat
␈β⊃␈↓ α7␈εk
␈βK␈↓ ε@␈ε¬log␈↓ εu␈ε¬6
␈βL␈↓ ¬5␈εk␈↓ λ␈ε¬1.63
␈βR␈↓ ∧+␈ελt␈↓ ∧O␈εα=␈↓ ∧⎇␈ελO␈↓ ¬↔␈εα(␈↓ ¬#␈εα6␈↓ ¬C␈εα)␈α
=␈↓ επ␈ελO␈↓ ε!␈εα(␈↓ ε-␈ελp␈↓ πβ␈εα)␈α
=␈↓ πG␈ελO␈↓ πa␈εα(␈↓ πm␈ελp␈↓ λ3␈εα).␈↓ 
p␈εα(23)
␈βW␈↓ εe␈επ3
␈β`␈↓ ∧6␈εk
␈βd␈↓ λ␈εk
␈βe␈↓ ε@␈εk
␈β!␈↓ ↓H␈εα(See␈αex␈α␈ercise␈α7.)
␈βG␈↓ 
(␈ε¬lg␈↓ 
C␈ε¬3
␈βM␈↓ α␈εαAlthough␈α∂the␈α∂modular␈α∂method␈α∂is␈α⊂more␈α∂complicated␈α∂than␈α∂the␈↓ 	l␈ελO␈↓ 
ε␈εα(␈↓ 
∩␈ελn␈↓ 
Q␈εα)␈α∂pro-
␈βx␈↓ ↓H␈εαcedure␈α⊂discussed␈α⊂at␈α⊂the␈α⊃beginning␈α⊂of␈α⊂this␈α⊂section,␈α∩it␈α⊂does,␈α⊃in␈α⊃fact,␈α⊃lead␈α⊂to␈α⊂an
␈β
≡␈↓ π≥␈ε¬2
␈β
#␈↓ ↓H␈εαex␈α␈ecution␈α⊂time␈α⊂substan␈α␈tially␈α⊂better␈α⊂than␈↓ εb␈ελO␈↓ ε|␈εα(␈↓ πλ␈ελn␈↓ π,␈εα)␈α⊂for␈α⊂the␈α⊂m␈α␈ultiplication␈α⊂of␈↓ 
←␈ελn␈↓ 
t␈εα-bit
␈β
N␈↓ ↓H␈εαn␈α␈um␈α␈bers.␈α⊃Th␈α␈us␈α
w␈α␈e␈α∞can␈α∞impro␈α␈v␈α␈e␈α
on␈α∞the␈α∞classical␈α
method␈α∞by␈α
using␈α∞either␈α∞of␈α
t␈α␈w␈α␈o
␈β
y␈↓ ↓H␈εαcompletely␈αdi{eren␈α␈t␈αapproaches.
␈β∞%␈↓ α␈εαLet␈αus␈α
no␈α␈w␈αanalyze␈αoperation␈α
(d)␈αabo␈α␈v␈α␈e.␈α
Assume␈αthat␈α
w␈α␈e␈αare␈αgiv␈α␈en␈α
a␈αset␈αof
␈β∞P␈↓ ↓H␈εαpositiv␈α␈e␈αin␈α␈tegers␈↓ βR␈ελe␈↓ βw␈εα<␈↓ ∧%␈ελe␈↓ ∧J␈εα<␈↓ ∧x␈ε⊗↓␈αε↓␈αε↓␈↓ ¬,␈εα<␈↓ ¬Z␈ελe␈↓ ¬u␈εα,␈αrelativ␈α␈ely␈αprime␈αin␈αpairs;␈αlet
␈β∞]␈↓ β←␈ε¬1␈↓ ∧2␈ε¬2␈↓ ¬g␈εr
␈β∂→␈↓ βS␈εe␈↓ ¬␈␈εe␈↓ 	1␈εe
␈β∂∨␈↓ α\␈ελm␈↓ β∪␈εα=␈↓ βA␈εα2␈↓ βr␈ε⊗␈␈εα␈αλ1,␈↓ ¬λ␈ελm␈↓ ¬?␈εα=␈↓ ¬m␈εα2␈↓ ε≥␈ε⊗␈␈εα␈αλ1,␈↓ π3␈εα.␈αε.␈αε.␈↓ πc␈εα,␈↓ λ;␈ελm␈↓ λq␈εα=␈↓ 	∨␈εα2␈↓ 	P␈ε⊗␈␈εα␈αλ1.␈↓ 
p␈εα(24)
␈β∂!␈↓ β↑␈επ1␈↓ ε
␈επ2␈↓ 	<␈ε
r
␈β∂,␈↓ α{␈ε¬1␈↓ ¬&␈ε¬2␈↓ λZ␈εr
␈β∂n␈↓ ↓H␈εαWe␈α
are␈α∞also␈α∞giv␈α␈en␈α∞n␈α␈um␈α␈bers␈↓ ¬∧␈ελw␈↓ ¬*␈εα,␈↓ ¬B␈εα.␈αε.␈αε.␈↓ ¬r␈εα,␈↓ ε
␈ελw␈↓ ε=␈εαsuch␈α∞that␈α∞0␈ε⊗␈α
∀␈↓ λ1␈ελw␈↓ λc␈ε⊗∀␈↓ 	∀␈ελm␈↓ 	@␈εα.␈α⊃Our␈α∞job␈α∞is␈ε∂␈α
to
␈β∂{␈↓ ¬≠␈ε¬1␈↓ ε"␈εr␈↓ λI␈εj␈↓ 	2␈εj
␈β⊂→␈↓ ↓H␈ε∂determine␈α	the␈α	binary␈α	represen␈α␈tation␈α	of␈α
the␈α	n␈α␈um␈α␈ber␈↓ πa␈ελw␈↓ λ¬␈ε∂that␈α	satis|es␈α	the␈α	conditions
␈β⊂a␈↓ ¬	␈εα0␈ε⊗␈α
∀␈↓ ¬S␈ελw␈↓ ¬x␈εα<␈↓ ε&␈ελm␈↓ εR␈ελm␈↓ π¬␈εα.␈αε.␈αε.␈↓ π5␈ελm␈↓ πa␈εα,
␈β⊂n␈↓ εD␈ε¬1␈↓ εq␈ε¬2␈↓ πT␈εr
␈β⊂}␈↓ 
p␈εα(25)
␈β⊃~␈↓ α}␈ελw␈↓ β#␈ε⊗⊃␈↓ βQ␈ελw␈↓ ∧↓␈εα(modulo␈↓ ¬
␈ελm␈↓ ¬:␈εα),␈↓ ε≡␈εα.␈αε.␈αε.␈↓ εN␈εα,␈↓ π&␈ελw␈↓ πK␈ε⊗⊃␈↓ πy␈ελw␈↓ λ(␈εα(modulo␈↓ 	4␈ελm␈↓ 	`␈εα).
␈β⊃(␈↓ βi␈ε¬1␈↓ ¬,␈ε¬1␈↓ λ⊃␈εr␈↓ 	S␈εr
␈β∪(

␈β↓Y␈↓ ↓H␈εα4.3.3␈ε∞␈↓ πλHO␈α␈W␈α	F␈α|AST␈αλCAN␈α	WE␈α	MU␈α␈L␈α}TIP␈α␈L␈α}Y␈εα␈α␈?␈↓ 
v␈εα285
␈βα&␈↓ ↓H␈εαThe␈αmethod␈αis␈αbased␈αon␈α(23)␈αand␈α(24)␈αof␈αSection␈α4.3.2.␈αFirst␈αw␈α␈e␈αcompute
␈βα[␈↓ α(␈ε↓␈␈↓ π=␈ε↓↓
␈βαt␈↓ ↓b␈ε→0␈↓ βw␈ε→0␈↓ ¬∂␈ε→0␈↓ π¬␈ε→0
␈βαz␈↓ ↓H␈ελw␈↓ ↓z␈εα=␈↓ α<␈εα.␈αε.␈αε.␈↓ αl␈εα((␈↓ β∧␈ελw␈↓ β1␈ε⊗␈␈↓ β]␈ελw␈↓ ∧ε␈εα)␈↓ ∧_␈ελc␈↓ ∧H␈ε⊗␈␈↓ ∧t␈ελw␈↓ ¬≡␈εα)␈↓ ¬0␈ελc␈↓ ¬`␈ε⊗␈␈↓ ε␈ε⊗↓␈αε↓␈αε↓␈↓ ε>␈ε⊗␈␈↓ εj␈ελw␈↓ πQ␈ελc␈↓ λ=␈εαmod␈↓ 	π␈ελm␈↓ 	3␈εα,␈↓ 
p␈εα(26)
␈ββλ␈↓ β≠␈εj␈↓ ∧%␈ε¬1␈↓ ∧3␈εj␈↓ ¬=␈ε¬2␈↓ ¬K␈εj␈↓ π↑␈ε¬(␈↓ πh␈εj␈↓ πu␈ε→␈␈ε¬1␈α↓)␈↓ λ*␈εj␈↓ 	&␈εj
␈ββ␈↓ ↓b␈εj␈↓ βw␈ε¬1␈↓ ¬∂␈ε¬2␈↓ π¬␈εj␈↓ π∩␈ε→␈␈ε¬1
␈ββI␈↓ ∧←␈ε→0
␈ββN␈↓ ↓H␈εαfor␈↓ α␈ελj␈↓ α~␈εα=␈α
2,␈↓ αp␈εα.␈αε.␈αε.␈↓ β ␈εα,␈↓ β6␈ελr␈↓ βF␈εα,␈αwhere␈↓ ∧D␈ελw␈↓ ∧w␈εα=␈↓ ¬%␈ελw␈↓ ¬Q␈εαmod␈↓ ε≠␈ελm␈↓ εH␈εα;␈αthen␈αw␈α␈e␈αcompute
␈ββ\␈↓ ¬=␈ε¬1␈↓ ε:␈ε¬1
␈ββ`␈↓ ∧←␈ε¬1
␈β∧β␈↓ βX␈ε↓␈␈↓ λM␈ε↓↓
␈β∧≤␈↓ ∧C␈ε→0␈↓ ¬v␈ε→0␈↓ λ>␈ε→0␈↓ 	W␈ε→0
␈β∧"␈↓ β¬␈ελw␈↓ β*␈εα=␈↓ βl␈εα.␈αε.␈αε.␈↓ ∧≤␈εα(␈↓ ∧(␈ελw␈↓ ∧P␈ελm␈↓ ¬/␈εα+␈↓ ¬[␈ελw␈↓ ε.␈εα)␈↓ ε:␈ελm␈↓ π~␈εα+␈↓ πF␈ε⊗↓␈αε↓␈αε↓␈↓ πx␈εα+␈↓ λ$␈ελw␈↓ λ[␈ελm␈↓ 	⊂␈εα+␈↓ 	<␈ελw␈↓ 	e␈εα.␈↓ 
p␈εα(27)
␈β∧0␈↓ ∧o␈εr␈↓ ∧|␈ε→␈␈ε¬1␈↓ εY␈εr␈↓ εf␈ε→␈␈ε¬2␈↓ λy␈ε¬1
␈β∧4␈↓ ∧C␈εr␈↓ ¬v␈εr␈↓ εβ␈ε→␈␈ε¬1␈↓ λ>␈ε¬2␈↓ 	W␈ε¬1
␈β∧v␈↓ ↓H␈εαHere␈↓ α~␈ελc␈↓ αK␈εαis␈α
a␈αn␈α␈um␈α␈ber␈α
such␈αthat␈↓ ¬(␈ελc␈↓ ¬M␈ελm␈↓ ε↓␈ε⊗⊃␈εα␈α
1␈α
(modulo␈↓ πW␈ελm␈↓ λβ␈εα);␈αthese␈αn␈α␈um␈α␈bers␈↓ 
∞␈ελc␈↓ 
>␈εαare␈α
not
␈β¬∧␈↓ α'␈εi␈↓ α3␈εj␈↓ ¬5␈εi␈↓ ¬@␈εj␈↓ ¬l␈εi␈↓ πv␈εj␈↓ 
≠␈εi␈↓ 
&␈εj
␈β¬"␈↓ ↓H␈εαgiv␈α␈en,␈αthey␈αm␈α␈ust␈αbe␈αdetermined␈αfrom␈αthe␈↓ ε\␈ελe␈↓ εv␈εα's.
␈β¬-␈↓ π≡␈ε↓␈␈↓ π:␈ε↓↓
␈β¬/␈↓ εi␈εj
␈β¬E␈↓ π,␈εr
␈β¬M␈↓ α␈εαThe␈α∞calculation␈α∞of␈α∞(26)␈α∞for␈α∞all␈↓ ¬t␈ελj␈↓ ε∪␈εαin␈α␈v␈α␈olv␈α␈es␈↓ πV␈εαadditions␈α∞modulo␈↓ 	v␈ελm␈↓ 
"␈εα,␈α∞each␈α∞of
␈β¬X␈↓ ¬→␈ε↓␈␈↓ ¬5␈ε↓↓
␈β¬Z␈↓ 
∃␈εj
␈β¬`␈↓ π,␈ε¬2
␈β¬p␈↓ ¬(␈εr
␈β¬x␈↓ ↓H␈εαwhich␈α
tak␈α␈es␈↓ β	␈ελO␈↓ β#␈εα(␈↓ β/␈ελe␈↓ βI␈εα)␈α
cy␈α␈cles,␈αplus␈↓ ¬N␈εαm␈α␈ultiplications␈α
by␈↓ πs␈ελc␈↓ λ→␈εα,␈α
modulo␈↓ 	+␈ελm␈↓ 	W␈εα.␈αThe␈α
calcula-
␈βε¬␈↓ β<␈εr␈↓ λ␈εi␈↓ λ␈εj␈↓ 	J␈εj
␈βε␈↓ ¬'␈ε¬2
␈βε#␈↓ ↓H␈εαtion␈αof␈↓ α<␈ελw␈↓ αb␈εαby␈αform␈α␈ula␈α(27)␈αin␈α␈v␈α␈olv␈α␈es␈↓ ¬l␈ελr␈↓ ελ␈εαadditions␈αand␈↓ πj␈ελr␈↓ λε␈εαm␈α␈ultiplications␈αby␈↓ 
/␈ελm␈↓ 
Z␈εα;␈αit␈αis
␈βε1␈↓ 
M␈εj
␈βεN␈↓ ↓H␈εαeasy␈αto␈αm␈α␈ultiply␈αby␈↓ ∧π␈ελm␈↓ ∧3␈εα,␈αsince␈αthis␈αis␈αjust␈αadding,␈αshifting,␈αand␈αsubtracting,␈αso␈αit
␈βε\␈↓ ∧%␈εj
␈βεu␈↓ π2␈ε¬2
␈βεz␈↓ ↓H␈εαis␈α
clear␈α
that␈α
the␈α
evaluation␈αof␈α
Eq.␈α
(27)␈α
tak␈α␈es␈↓ ε|␈ελO␈↓ π↔␈εα(␈↓ π#␈ελr␈↓ πA␈ελe␈↓ π[␈εα)␈α
cy␈α␈cles.␈αWe␈α
will␈α
soon␈α
see␈α
that
␈βππ␈↓ πN␈εr
␈βπ%␈↓ ↓H␈εαeach␈α∞of␈α∂the␈α∞m␈α␈ultiplications␈α∂by␈↓ ¬7␈ελc␈↓ ¬]␈εα,␈α∂modulo␈↓ εx␈ελm␈↓ π$␈εα,␈α∂requires␈α∂only␈↓ 	_␈ελO␈↓ 	2␈εα(␈↓ 	>␈ελe␈↓ 	←␈εαlog␈↓ 
∪␈ελe␈↓ 
-␈εα)␈α∞cy␈α␈cles,
␈βπ2␈↓ ¬D␈εi␈↓ ¬P␈εj␈↓ π↔␈εj␈↓ 	K␈εr␈↓ 
 ␈εr
␈βπK␈↓ 		␈ε¬2
␈βπP␈↓ ↓H␈εαand␈αtherefore␈ε∂␈αthe␈αen␈α␈tire␈αjob␈αof␈αcon␈α␈v␈α␈ersion␈αcan␈αbe␈αdone␈αin␈↓ λS␈ελO␈↓ λm␈εα(␈↓ λy␈ελr␈↓ 	↔␈ελe␈↓ 	7␈εαlog␈↓ 	k␈ελe␈↓ 
ε␈εα)␈ε∂␈αcy␈α␈cles␈εα.
␈βπ]␈↓ 	$␈εr␈↓ 	x␈εr
␈βπ{␈↓ α␈εαThe␈αabo␈α␈v␈α␈e␈αobservations␈αleav␈α␈e␈αus␈αwith␈αthe␈αfollo␈α␈wing␈αproblem␈αto␈αsolv␈α␈e:␈αGiv␈α␈en
␈βλ!␈↓ λ:␈εf
␈βλ&␈↓ ↓H␈εαpositiv␈α␈e␈αin␈α␈tegers␈↓ βR␈ελe␈↓ βj␈εα<␈↓ ∧_␈ελf␈↓ ∧6␈εαand␈αa␈αnonnegativ␈α␈e␈αin␈α␈teger␈↓ πZ␈ελu␈↓ πz␈εα<␈↓ λ(␈εα2␈↓ λH␈εα,␈αcompute␈αthe␈αvalue␈αof
␈βλM␈↓ αq␈εf␈↓ πr␈εe␈↓ 
I␈εf
␈βλR␈↓ ↓H␈εα(␈↓ ↓T␈ελc␈↓ ↓b␈ελu␈↓ ↓w␈εα)␈↓ α	␈εαmod␈↓ αS␈εα(␈↓ α←␈εα2␈↓ β∧␈ε⊗␈␈εα␈α¬1),␈α
where␈↓ ∧D␈ελc␈↓ ∧\␈εαis␈α
the␈α	n␈α␈um␈α␈ber␈α
such␈α	that␈α
(␈↓ π`␈εα2␈↓ λα␈ε⊗␈␈εα␈α¬1)␈↓ λI␈ελc␈↓ λa␈ε⊗⊃␈εα␈α
1␈α
(modulo␈↓ 
7␈εα2␈↓ 
\␈ε⊗␈␈εα␈α∧1);
␈βλ⎇␈↓ ↓H␈εαand␈α∂the␈α∂computation␈α∞m␈α␈ust␈α∂be␈α∂done␈α∂in␈↓ ε;␈ελO␈↓ εU␈εα(␈↓ εa␈ελf␈↓ εy␈εαlog␈↓ π-␈ελf␈↓ π>␈εα)␈α∂cy␈α␈cles.␈α∃The␈α∂result␈α∂of␈α∞ex␈α␈ercise
␈β	(␈↓ ↓H␈εα4.3.2↑6␈αgiv␈α␈es␈αa␈αform␈α␈ula␈αfor␈↓ ∧t␈ελc␈↓ ¬∞␈εαwhich␈αsuggests␈αa␈αprocedure␈αthat␈αcan␈αbe␈αused.␈αFirst
␈β	S␈↓ ↓H␈εαw␈α␈e␈α|nd␈αthe␈αleast␈αpositiv␈α␈e␈αin␈α␈teger␈↓ ¬S␈ελb␈↓ ¬m␈εαsuch␈αthat
␈β
'␈↓ ¬(␈ελb␈↓ ¬7␈ελe␈↓ ¬O␈ε⊗⊃␈εα␈α
1␈α
(modulo␈↓ π%␈ελf␈↓ π6␈εα).␈↓ 
p␈εα(28)
␈β
\␈↓ π%␈ε↓␈␈↓ λ∨␈ε↓↓
␈β
v␈↓ λ⊂␈ε¬3
␈β
{␈↓ ↓H␈εαThis␈α
can␈αbe␈αdone␈α
using␈αEuclid's␈αalgorithm␈α
in␈↓ π␈ελO␈↓ π3␈εα(␈↓ π?␈εαlog␈↓ πs␈ελf␈↓ λ∧␈εα)␈↓ λ7␈εαcy␈α␈cles,␈αsince␈αEuclid's␈α
al-
␈β'␈↓ ↓H␈εαgorithm␈α	applied␈α	to␈↓ βq␈ελe␈↓ ∧λ␈εαand␈↓ ∧K␈ελf␈↓ ∧f␈εαrequires␈↓ ¬i␈ελO␈↓ εβ␈εα(␈↓ ε∂␈εαlog␈↓ εC␈ελf␈↓ εT␈εα)␈α	iterations,␈α
and␈α	each␈α	iteration␈α	requires
␈β2␈↓ ↓b␈ε↓␈␈↓ α[␈ε↓↓
␈βM␈↓ αM␈ε¬2
␈βR␈↓ ↓H␈ελO␈↓ ↓p␈εα(␈↓ ↓|␈εαlog␈↓ α0␈ελf␈↓ αA␈εα)␈↓ αv␈εαcy␈α␈cles;␈αalternativ␈α␈ely,␈αw␈α␈e␈α
could␈αbe␈αv␈α␈ery␈α
sloppy␈αhere␈αwithout␈αviolating
␈β⎇␈↓ ↓H␈εαthe␈αtotal␈α
time␈αconstrain␈α␈t,␈α
by␈α
simply␈αtrying␈↓ εy␈ελb␈↓ π∩␈εα=␈α1,␈α
2,␈α
etc.,␈α
un␈α␈til␈α(28)␈α
is␈αsatis|ed,
␈β(␈↓ ↓H␈εαsince␈α
such␈α
a␈α
process␈α
w␈α␈ould␈α∞tak␈α␈e␈↓ ¬K␈ελO␈↓ ¬e␈εα(␈↓ ¬q␈ελf␈↓ ελ␈εαlog␈↓ ε<␈ελf␈↓ εM␈εα)␈α∞cy␈α␈cles␈α
in␈α
all.␈α∂Once␈↓ 	↔␈ελb␈↓ 	2␈εαhas␈α
been␈α
found,
␈βS␈↓ ↓H␈εαex␈α␈ercise␈α4.3.2↑6␈αtells␈αus␈αthat
␈β
⊃␈↓ ¬s␈ε↓X
␈β
~␈↓ ¬F␈ε↓∩␈↓ εn␈ε↓∪
␈β
.␈↓ εU␈εj␈↓ εc␈εe␈↓ πr␈εf
␈β
4␈↓ ∧_␈ελc␈↓ ∧0␈εα=␈↓ ∧↑␈ελc␈↓ ∧l␈εα[␈↓ ∧v␈ελb␈↓ ¬∧␈εα]␈α
=␈↓ εC␈εα2␈↓ π
␈εαmod␈↓ πT␈εα(␈↓ π`␈εα2␈↓ λλ␈ε⊗␈␈εα␈αλ1).␈↓ 
p␈εα(29)
␈β
e␈↓ ¬\␈ε¬0␈ε→␈α↓∀␈↓ επ␈εj␈↓ ε∃␈ε¬<␈↓ ε1␈εb
␈β∞>␈↓ π$␈εf
␈β∞C␈↓ α␈εαA␈αbrute-force␈αm␈α␈ultiplication␈αof␈α(␈↓ εε␈ελc␈↓ ε∀␈ελu␈↓ ε*␈εα)␈↓ ε<␈εαmod␈↓ πε␈εα(␈↓ π∩␈εα2␈↓ π9␈ε⊗␈␈εα␈αλ1)␈αw␈α␈ould␈αnot␈αbe␈αgood␈αenough
␈β∞n␈↓ ↓H␈εαto␈αsolv␈α␈e␈αthe␈αproblem,␈α
since␈αw␈α␈e␈αdo␈αnot␈α
kno␈α␈w␈αho␈α␈w␈αto␈αm␈α␈ultiply␈α
general␈↓ 
ε␈ελf␈↓ 
↔␈εα-bit␈αn␈α␈um-
␈β∂→␈↓ ↓H␈εαbers␈α∞in␈↓ αA␈ελO␈↓ α\␈εα(␈↓ αh␈ελf␈↓ α␈␈εαlog␈↓ β3␈ελf␈↓ βD␈εα)␈α∞cy␈α␈cles.␈α∩But␈α
the␈α∞special␈α∞form␈α∞of␈↓ πV␈ελc␈↓ πr␈εαpro␈α␈vides␈α∞a␈α∞clue:␈α⊂The␈α
binary
␈β∂E␈↓ ↓H␈εαrepresen␈α␈tation␈αof␈↓ β↑␈ελc␈↓ βy␈εαis␈αcomposed␈α
of␈αbits␈α
in␈α
a␈αregular␈α
pattern,␈α
and␈αEq.␈α
(29)␈αsho␈α␈ws
␈β∂p␈↓ ↓H␈εαthat␈α
the␈α
n␈α␈um␈α␈ber␈↓ βY␈ελc␈↓ βg␈εα[2␈↓ ∧β␈ελb␈↓ ∧⊃␈εα]␈α
can␈α
be␈α
obtained␈α
in␈α
a␈α
simple␈α
way␈α
from␈↓ 	⊂␈ελc␈↓ 	≡␈εα[␈↓ 	(␈ελb␈↓ 	6␈εα].␈α∂This␈α
suggests
␈β⊂≠␈↓ ↓H␈εαthat␈αw␈α␈e␈αcan␈αrapidly␈αm␈α␈ultiply␈αa␈αn␈α␈um␈α␈ber␈↓ ε4␈ελu␈↓ εU␈εαby␈↓ π	␈ελc␈↓ π↔␈εα[␈↓ π!␈ελb␈↓ π/␈εα]␈αif␈αw␈α␈e␈αbuild␈↓ λu␈ελc␈↓ 	β␈εα[␈↓ 	
␈ελb␈↓ 	≠␈εα]␈↓ 	%␈ελu␈↓ 	F␈εαup␈αin␈↓ 
#␈εαlg␈↓ 
E␈ελb␈↓ 
↑␈εαsteps
␈β⊂F␈↓ ↓H␈εαin␈αλa␈αλsuitably␈αλclev␈α␈er␈αλmanner,␈α	such␈αλas␈αλthe␈αλfollo␈α␈wing:␈α
Let␈α	the␈αλbinary␈αλnotation␈αλfor␈↓ 
r␈ελb␈↓ λ␈εαbe
␈β⊃~␈↓ ¬.␈ελb␈↓ ¬F␈εα=␈α
(␈↓ ε␈ελb␈↓ ε ␈εα.␈αε.␈αε.␈↓ εP␈ελb␈↓ εk␈ελb␈↓ πε␈ελb␈↓ π"␈εα)␈↓ π<␈εα;
␈β⊃(␈↓ ε
␈εs␈↓ ε]␈ε¬2␈↓ εx␈ε¬1␈↓ π∪␈ε¬0␈↓ π.␈ε¬2
␈β∪(

␈β↓Y␈↓ ↓H␈εα286␈↓ α=␈ε∞A␈α␈RITH␈α␈METIC␈εα␈↓ 
b4.3.3
␈βα(␈↓ ↓H␈εαw␈α␈e␈αmay␈αcalculate␈αthe␈αsequences␈↓ ¬C␈ελa␈↓ ¬b␈εα,␈↓ ¬x␈ελd␈↓ ε↔␈εα,␈↓ ε-␈ελu␈↓ εP␈εα,␈↓ εf␈ελv␈↓ π⊃␈εαde|ned␈αby␈αthe␈αrules
␈βα5␈↓ ¬S␈εk␈↓ ε	␈εk␈↓ εB␈εk␈↓ εv␈εk
␈βαo␈↓ β~␈ελa␈↓ βC␈εα=␈↓ βq␈ελe␈↓ β␈␈εα,
␈βαr␈↓ ∧x␈ελa␈↓ ¬!␈εα=␈α
2␈↓ ¬a␈ελa␈↓ ε2␈εαmod␈↓ ε|␈ελf␈↓ π
␈εα;
␈βα|␈↓ β+␈ε¬0
␈ββ␈↓ ¬	␈εk␈↓ ¬r␈εk␈↓ ε␈ε→␈␈ε¬1
␈ββ%␈↓ β~␈ελd␈↓ βC␈εα=␈↓ βq␈ελb␈↓ ∧␈ελe␈↓ ∧~␈εα,
␈ββ(␈↓ ∧x␈ελd␈↓ ¬!␈εα=␈α
(␈↓ ¬[␈ελd␈↓ ε.␈εα+␈↓ εZ␈ελb␈↓ εu␈ελa␈↓ π∀␈εα)␈↓ π&␈εαmod␈↓ πp␈ελf␈↓ λα␈εα;
␈ββ2␈↓ β+␈ε¬0␈↓ β}␈ε¬0
␈ββ6␈↓ ¬	␈εk␈↓ ¬l␈εk␈↓ ¬z␈ε→␈␈ε¬1␈↓ εg␈εk␈↓ πε␈εk
␈ββD␈↓ 
p␈εα(30)
␈ββX␈↓ εo␈εa␈↓ λt␈εf
␈ββ[␈↓ β⊗␈ελu␈↓ βC␈εα=␈↓ βq␈ελu␈↓ ∧π␈εα,
␈ββ↑␈↓ ∧t␈ελu␈↓ ¬!␈εα=␈α
(␈↓ ¬[␈ελu␈↓ ε1␈εα+␈↓ ε]␈εα2␈↓ π,␈ελu␈↓ πz␈εα)␈↓ λ␈εαmod␈↓ λV␈εα(␈↓ λb␈εα2␈↓ 	
␈ε⊗␈␈εα␈αλ1);
␈ββa␈↓ ε}␈ε
k␈↓ π
␈ε≠␈␈επ1
␈ββh␈↓ β+␈ε¬0
␈ββl␈↓ ¬	␈εk␈↓ ¬p␈εk␈↓ ¬}␈ε→␈␈ε¬1␈↓ π@␈εk␈↓ πO␈ε→␈␈ε¬1
␈β∧∞␈↓ πε␈εd␈↓ λ`␈εf
␈β∧⊃␈↓ β≠␈ελv␈↓ βC␈εα=␈↓ βq␈ελb␈↓ ∧␈ελu␈↓ ∧"␈εα,
␈β∧∀␈↓ ∧y␈ελv␈↓ ¬!␈εα=␈α
(␈↓ ¬[␈ελv␈↓ ε-␈εα+␈↓ εY␈ελb␈↓ εt␈εα2␈↓ πC␈ελu␈↓ πf␈εα)␈↓ πx␈εαmod␈↓ λB␈εα(␈↓ λN␈εα2␈↓ λv␈ε⊗␈␈εα␈αλ1).
␈β∧↔␈↓ π∀␈ε
k␈↓ π!␈ε≠␈␈επ␈α␈1
␈β∧≡␈↓ β+␈ε¬0␈↓ β}␈ε¬0
␈β∧"␈↓ ¬	␈εk␈↓ ¬k␈εk␈↓ ¬y␈ε→␈␈ε¬1␈↓ εf␈εk␈↓ πW␈εk
␈β∧a␈↓ ↓H␈εαIt␈αis␈αeasy␈αto␈αpro␈α␈v␈α␈e␈αby␈αinduction␈αon␈↓ ¬v␈ελk␈↓ ε∪␈εαthat
␈β¬,␈↓ α=␈εk␈↓ εB␈εk␈↓ πo␈εf
␈β¬2␈↓ ↓H␈ελa␈↓ ↓q␈εα=␈α
(␈↓ α+␈εα2␈↓ αK␈ελe␈↓ αZ␈εα)␈↓ αl␈εαmod␈↓ β6␈ελf␈↓ βG␈εα;␈↓ ¬1␈ελu␈↓ ¬↑␈εα=␈α
(␈↓ ε_␈ελc␈↓ ε&␈εα[␈↓ ε0␈εα2␈↓ εV␈εα]␈↓ ε`␈ελu␈↓ εu␈εα)␈↓ ππ␈εαmod␈↓ πQ␈εα(␈↓ π]␈εα2␈↓ λ¬␈ε⊗␈␈εα␈αλ1);
␈β¬=␈↓ α∨␈ε↓␈␈↓ βp␈ε↓↓␈↓ ε␈ε↓␈␈↓ λ↓␈ε↓↓
␈β¬?␈↓ ↓X␈εk␈↓ ¬F␈εk
␈β¬G␈↓ 
p␈εα(31)
␈β¬W␈↓ λ⎇␈εf
␈β¬]␈↓ ↓H␈ελd␈↓ ↓q␈εα=␈↓ α-␈εα(␈↓ α9␈ελb␈↓ αZ␈εα.␈αε.␈αε.␈↓ β
␈ελb␈↓ β&␈ελb␈↓ βA␈εα)␈↓ βb␈ελe␈↓ ∧∧␈εαmod␈↓ ∧N␈ελf␈↓ ∧←␈εα;␈↓ ¬6␈ελv␈↓ ¬↑␈εα=␈↓ ε~␈ελc␈↓ ε(␈εα[(␈↓ ε>␈ελb␈↓ ε`␈εα.␈αε.␈αε.␈↓ π⊂␈ελb␈↓ π+␈ελb␈↓ πG␈εα)␈↓ πa␈εα]␈↓ πk␈ελu␈↓ λ∃␈εαmod␈↓ λ←␈εα(␈↓ λk␈εα2␈↓ 	∪␈ε⊗␈␈εα␈αλ1).
␈β¬j␈↓ ↓X␈εk␈↓ αF␈εk␈↓ β↔␈ε¬1␈↓ β3␈ε¬0␈↓ βM␈ε¬2␈↓ ¬F␈εk␈↓ εK␈εk␈↓ π≥␈ε¬1␈↓ π8␈ε¬0␈↓ πS␈ε¬2
␈βε.␈↓ ε"␈εf
␈βε3␈↓ ↓H␈εαHence␈αthe␈αdesired␈αresult,␈α(␈↓ ∧b␈ελc␈↓ ∧p␈εα[␈↓ ∧z␈ελb␈↓ ¬	␈εα]␈↓ ¬∪␈ελu␈↓ ¬(␈εα)␈↓ ¬:␈εαmod␈↓ ε∧␈εα(␈↓ ε⊂␈εα2␈↓ ε8␈ε⊗␈␈εα␈απ1),␈αis␈↓ π:␈ελv␈↓ πW␈εα.␈αThe␈αcalculation␈αof␈↓ 
∃␈ελa␈↓ 
5␈εα,␈↓ 
J␈ελd␈↓ 
j␈εα,␈↓ 
␈␈ελu␈↓ "␈εα,
␈βε@␈↓ πJ␈εs␈↓ 
&␈εk␈↓ 
[␈εk␈↓ ∀␈εk
␈βε↑␈↓ ↓H␈ελv␈↓ ↓r␈εαfrom␈↓ αH␈ελa␈↓ β∩␈εα,␈↓ β(␈ελd␈↓ βs␈εα,␈↓ ∧	␈ελu␈↓ ∧W␈εα,␈↓ ∧m␈ελv␈↓ ¬C␈εαtak␈α␈es␈↓ ε ␈ελO␈↓ ε:␈εα(␈↓ εF␈εαlog␈↓ εz␈ελf␈↓ π␈εα)␈αλ+␈↓ πK␈ελO␈↓ πe␈εα(␈↓ πq␈εαlog␈↓ λ%␈ελf␈↓ λ6␈εα)␈αλ+␈↓ λv␈ελO␈↓ 	⊂␈εα(␈↓ 	≤␈ελf␈↓ 	.␈εα)␈αλ+␈↓ 	n␈ελO␈↓ 
λ␈εα(␈↓ 
∀␈ελf␈↓ 
%␈εα)␈α
=␈↓ 
i␈ελO␈↓ β␈εα(␈↓ ∂␈ελf␈↓  ␈εα)
␈βεk␈↓ ↓W␈εk␈↓ αY␈εk␈↓ αg␈ε→␈␈ε¬1␈↓ β9␈εk␈↓ βH␈ε→␈␈ε¬1␈↓ ∧≥␈εk␈↓ ∧,␈ε→␈␈ε¬1␈↓ ∧⎇␈εk␈↓ ¬␈ε→␈␈ε¬␈α␈1
␈βπ	␈↓ ↓H␈εαcy␈α␈cles,␈α⊂and␈α∂therefore␈α∂the␈α∂en␈α␈tire␈α⊂calculation␈α∂can␈α∂be␈α∂done␈α∂in␈↓ 	β␈ελs␈↓ 	_␈ελO␈↓ 	2␈εα(␈↓ 	>␈ελf␈↓ 	O␈εα)␈α∂=␈↓ 
≡␈ελO␈↓ 
8␈εα(␈↓ 
D␈ελf␈↓ 
[␈εαlog␈↓ ∂␈ελf␈↓  ␈εα)
␈βπ4␈↓ ↓H␈εαcy␈α␈cles␈αas␈αdesired.
␈βπ←␈↓ α␈εαThe␈α
reader␈α	will␈α
|nd␈α	it␈α	instructiv␈α␈e␈α
to␈α	study␈α
the␈α	ingenious␈α
method␈α	represen␈α␈ted
␈βλ␈↓ ↓H␈εαby␈α
(30)␈α
and␈α
(31)␈αv␈α␈ery␈α
carefully.␈αSimilar␈α
techniques␈αare␈α
discussed␈α
in␈α
Section␈α
4.6.3.
␈βλ6␈↓ α␈εαSch␈↓ αD␈εα∪␈↓ αD␈εαo␈↓ αV␈εαnhage's␈α	paper␈α	[␈ε∂Computing␈ε∩␈α	1␈εα␈α	(1966),␈α	182↑196]␈α	sho␈α␈ws␈α	that␈α	these␈α	ideas␈αλcan
␈βλ←␈↓ 	h␈∧λ←	hαA
␈βλ`␈↓ 	D␈ε⊗p
␈βλg␈↓ 	h␈ε¬2␈↓ 	|␈ε¬lg␈↓ 
↔␈εn
␈βλm␈↓ ↓H␈εαbe␈α
extended␈α∞to␈α∞the␈α∞m␈α␈ultiplication␈α∞of␈↓ ε↔␈ελn␈↓ ε-␈εα-bit␈α∞n␈α␈um␈α␈bers␈α∞using␈↓ λe␈ελr␈↓ 	↓␈ε⊗→␈↓ 	2␈εα2␈↓ 
6␈εαmoduli,
␈β	→␈↓ ↓H␈εαobtaining␈α
a␈αmethod␈α
analogous␈αto␈αAlgorithm␈α
C.␈αWe␈α
shall␈αnot␈αdw␈α␈ell␈α
on␈αthe␈α
details
␈β	D␈↓ ↓H␈εαhere,␈α	since␈α
Algorithm␈α	C␈α	is␈α
always␈α	superior;␈α
in␈α	fact,␈α
an␈α	ev␈α␈en␈α
better␈α	method␈α	is␈α	next
␈β	o␈↓ ↓H␈εαon␈αour␈αagenda.
␈β
.␈↓ ↓H␈ε∩C.␈α
Use␈αof␈αFourier␈αtransforms.␈εα␈α⊗The␈αcritical␈αproblem␈αin␈αhigh-precision␈α
m␈α␈ultiplica-
␈β
Y␈↓ ↓H␈εαtion␈αis␈αthe␈αdetermination␈αof␈α\con␈α␈v␈α␈olution␈αproducts"␈αsuch␈αas
␈β+␈↓ ∧\␈ελu␈↓ ∧}␈ελv␈↓ ¬$␈εα+␈↓ ¬P␈ελu␈↓ ε≥␈ελv␈↓ εD␈εα+␈↓ εp␈ε⊗↓␈αε↓␈αε↓␈↓ π"␈εα+␈↓ πN␈ελu␈↓ πq␈ελv␈↓ λ∞␈εα,
␈β8␈↓ ∧q␈εr␈↓ ¬∞␈ε¬0␈↓ ¬e␈εr␈↓ ¬r␈ε→␈␈ε¬1␈↓ ε-␈ε¬1␈↓ πb␈ε¬0␈↓ λ␈εr
␈β⎇␈↓ ↓H␈εαand␈αthere␈αis␈αan␈αin␈α␈timate␈αrelation␈α
bet␈α␈w␈α␈een␈αcon␈α␈v␈α␈olutions␈αand␈α|nite␈αFourier␈αtrans-
␈β(␈↓ ↓H␈εαforms.␈α⊃If␈↓ α`␈ελ|␈↓ β∧␈εα=␈↓ β5␈εαexp␈↓ βm␈εα(2␈↓ ∧␈ελ→␈↓ ∧∨␈ελi␈↓ ∧-␈εα/␈↓ ∧?␈ελK␈↓ ∧]␈εα)␈α∞is␈α
a␈↓ ¬<␈ελK␈↓ ¬Z␈εαth␈α∞root␈α
of␈α∞unity,␈α∞the␈α∞one-dimensional␈α
Fourier
␈βS␈↓ ↓H␈εαtransform␈αof␈α(␈↓ β$␈ελu␈↓ βG␈εα,␈↓ βW␈ελu␈↓ βz␈εα,␈↓ ∧
␈εα.␈αε.␈αε.␈↓ ∧:␈εα,␈↓ ∧J␈ελu␈↓ ¬!␈εα)␈αmay␈αbe␈αde|ned␈αto␈αbe␈α(␈↓ λ≥␈ελu␈↓ λ∨␈εα∂␈↓ λA␈εα,␈↓ λQ␈ελu␈↓ λS␈εα∂␈↓ λu␈εα,␈↓ 	¬␈εα.␈αε.␈αε.␈↓ 	5␈εα,␈↓ 	E␈ελu␈↓ 	G␈εα∂␈↓ 
→␈εα),␈αwhere
␈βa␈↓ β8␈ε¬0␈↓ βk␈ε¬1␈↓ ∧↑␈εK␈↓ ∧v␈ε→␈␈ε¬1␈↓ λ3␈ε¬0␈↓ λg␈ε¬1␈↓ 	V␈εK␈↓ 	n␈ε→␈␈ε¬1
␈β
α␈↓ ¬≠␈ε↓X
␈β
∨␈↓ επ␈εs␈↓ ε∀␈εt
␈β
&␈↓ ∧&␈ελu␈↓ ∧(␈εα∂␈↓ ∧R␈εα=␈↓ ¬p␈ελ|␈↓ ε≡␈ελu␈↓ ε=␈εα,␈↓ π∃0␈ε⊗␈α
∀␈↓ π←␈ελs␈↓ πx␈εα<␈↓ λ&␈ελK␈↓ λD␈εα.␈↓ 
p␈εα(32)
␈β
3␈↓ ∧;␈εs␈↓ ε3␈εt
␈β
W␈↓ ¬␈ε¬0␈ε→∀␈↓ ¬+␈εt␈↓ ¬6␈ε¬<␈↓ ¬R␈εK
␈β∞⊗␈↓ ↓H␈εαLetting␈α(␈↓ αT␈εα∂␈↓ αT␈ελv␈↓ αu␈εα,␈↓ β¬␈εα∂␈↓ β¬␈ελv␈↓ β&␈εα,␈↓ β6␈εα.␈αε.␈αε.␈↓ βf␈εα,␈↓ βv␈εα∂␈↓ βv␈ελv␈↓ ∧L␈εα)␈αbe␈αde|ned␈αin␈αthe␈αsame␈αway,␈αas␈αthe␈αFourier␈αtransform
␈β∞$␈↓ αf␈ε¬0␈↓ β_␈ε¬1␈↓ ∧	␈εK␈↓ ∧!␈ε→␈␈ε¬1
␈β∞A␈↓ ↓H␈εαof␈α
(␈↓ ↓␈␈ελv␈↓ α≡␈εα,␈↓ α.␈ελv␈↓ αL␈εα,␈↓ α\␈εα.␈αε.␈αε.␈↓ β␈εα,␈↓ β≤␈ελv␈↓ βo␈εα),␈α∞it␈α∞is␈α
not␈α∞di}cult␈α∞to␈α∞see␈α
that␈α∞(␈↓ πk␈ελu␈↓ πm␈εα∂␈↓ λ∂␈ελv␈↓ λ⊂␈εα∂␈↓ λ0␈εα,␈↓ λ@␈ελu␈↓ λB␈εα∂␈↓ λd␈ελv␈↓ λe␈εα∂␈↓ 	ε␈εα,␈↓ 	⊗␈εα.␈αε.␈αε.␈↓ 	F␈εα,␈↓ 	V␈ελu␈↓ 	W␈εα∂␈↓ 
*␈εα∂␈↓ 
*␈ελv␈↓ 
{␈εα)␈α
is
␈β∞O␈↓ α∂␈ε¬0␈↓ α=␈ε¬1␈↓ β,␈εK␈↓ βC␈ε→␈␈ε¬1␈↓ λ↓␈ε¬0␈↓ λ"␈ε¬0␈↓ λV␈ε¬1␈↓ λw␈ε¬1␈↓ 	f␈εK␈↓ 	}␈ε→␈␈ε¬1␈↓ 
8␈εK␈↓ 
O␈ε→␈␈ε¬1
␈β∞m␈↓ ↓H␈εαthe␈αtransform␈αof␈α(␈↓ βb␈ελw␈↓ ∧λ␈εα,␈↓ ∧_␈ελw␈↓ ∧>␈εα,␈↓ ∧N␈εα.␈αε.␈αε.␈↓ ∧}␈εα,␈↓ ¬∞␈ελw␈↓ ¬i␈εα),␈αwhere
␈β∞z␈↓ βy␈ε¬0␈↓ ∧0␈ε¬1␈↓ ¬&␈εK␈↓ ¬>␈ε→␈␈ε¬1
␈β∂9␈↓ α0␈ελw␈↓ α←␈εα=␈↓ β
␈ελu␈↓ β/␈ελv␈↓ βU␈εα+␈↓ ∧↓␈ελu␈↓ ∧N␈ελv␈↓ ∧t␈εα+␈↓ ¬ ␈ε⊗↓␈αε↓␈αε↓␈↓ ¬R␈εα+␈↓ ¬}␈ελu␈↓ ε!␈ελv␈↓ εF␈εα+␈↓ εr␈ελu␈↓ πJ␈ελv␈↓ λ~␈εα+␈↓ λF␈ε⊗↓␈αε↓␈αε↓␈↓ λx␈εα+␈↓ 	$␈ελu␈↓ 	q␈ελv
␈β∂F␈↓ αH␈εr␈↓ β!␈εr␈↓ β?␈ε¬0␈↓ ∧⊗␈εr␈↓ ∧#␈ε→␈␈ε¬1␈↓ ∧↑␈ε¬1␈↓ ε∪␈ε¬0␈↓ ε1␈εr␈↓ ππ␈εK␈↓ π∨␈ε→␈␈ε¬1␈↓ πZ␈εr␈↓ πg␈ε¬+1␈↓ 	9␈εr␈↓ 	F␈ε¬+1␈↓ 
↓␈εK␈↓ 
→␈ε→␈␈ε¬1
␈β∂←␈↓ βk␈ε↓X
␈β⊂α␈↓ α←␈εα=␈↓ ¬∧␈ελu␈↓ ¬$␈ελv␈↓ ¬A␈εα.
␈β⊂⊂␈↓ ¬→␈εi␈↓ ¬4␈εj
␈β⊂4␈↓ β
␈εi␈↓ β_␈ε¬+␈↓ β5␈εj␈↓ βB␈ε→⊃␈↓ β←␈εr␈↓ βm␈ε¬(␈α␈mo␈α↓dulo␈↓ ∧]␈εK␈↓ ∧t␈ε¬)
␈β⊂q␈↓ ↓H␈εαWhen␈↓ α3␈ελK␈↓ α←␈ε⊗∃␈εα␈α∂2␈↓ β$␈ελn␈↓ βD␈ε⊗␈␈εα␈α
1␈α∂and␈↓ ∧\␈ελu␈↓ ¬⊃␈εα=␈↓ ¬D␈ελu␈↓ ε%␈εα=␈↓ εX␈ε⊗↓␈αε↓␈αε↓␈↓ π⊃␈εα=␈↓ πD␈ελu␈↓ λ*␈εα=␈↓ λ]␈ελv␈↓ 	∞␈εα=␈↓ 	A␈ελv␈↓ 
≥␈εα=␈↓ 
P␈ε⊗↓␈αε↓␈αε↓␈↓ λ␈εα=
␈β⊂}␈↓ ∧p␈εn␈↓ ¬Y␈εn␈↓ ¬k␈ε¬+1␈↓ πX␈εK␈↓ πp␈ε→␈␈ε¬1␈↓ λm␈εn␈↓ 	Q␈εn␈↓ 	b␈ε¬+1
␈β⊃≤␈↓ ↓H␈ελv␈↓ α(␈εα=␈α∞0,␈α∂the␈↓ βE␈ελw␈↓ β`␈εα's␈α∞are␈α∞just␈α∞what␈α∞w␈α␈e␈α∞need␈α∂for␈α∞m␈α␈ultiplication;␈ε∂␈α∂the␈α∞transform␈α∞of
␈β⊃)␈↓ ↓W␈εK␈↓ ↓o␈ε→␈␈ε¬1
␈β∪(

␈β↓Y␈↓ ↓H␈εα4.3.3␈ε∞␈↓ πλHO␈α␈W␈α	F␈α|AST␈αλCAN␈α	WE␈α	MU␈α␈L␈α}TIP␈α␈L␈α}Y␈εα␈α␈?␈↓ 
v␈εα287
␈βα(␈↓ ↓H␈ε∂a␈α∂con␈α␈v␈α␈olution␈α∞product␈α∂is␈α∂the␈α∂ordinary␈α∂product␈α∂of␈α∂the␈α∂transforms.␈εα␈α∃This␈α∂idea␈α∞is
␈βα4␈↓ λ∃␈ε↓␈␈↓ 	∩␈ε↓↓
␈βαS␈↓ ↓H␈εαactually␈α
a␈α
special␈α
case␈α
of␈α∞Toom's␈α
use␈α
of␈α
polynomials␈↓ λ#␈εαcf.␈α
(10)␈↓ 	 ␈εα,␈α
with␈↓ 

␈ελx␈↓ 
*␈εαreplaced
␈βα}␈↓ ↓H␈εαby␈αroots␈αof␈αunity.
␈ββ*␈↓ α␈εαThe␈α
abo␈α␈v␈α␈e␈α
property␈α
of␈α∞Fourier␈α
transforms␈α
was␈α
exploited␈α
by␈α
V.␈α
Strassen␈α
in
␈ββU␈↓ ↓H␈εα1968,␈α
using␈α
a␈α
su}cien␈α␈tly␈α
precise␈α
binary␈α
represen␈α␈tation␈α
of␈α
the␈α
complex␈α	n␈α␈um␈α␈ber␈↓ ␈ελ|␈↓ "␈εα,
␈β∧↓␈↓ ↓H␈εαto␈α
m␈α␈ultiply␈α
large␈α∞n␈α␈um␈α␈bers␈α
faster␈α
than␈α∞was␈α
possible␈α
under␈α∞all␈α
previously␈α
kno␈α␈wn
␈β∧,␈↓ ↓H␈εαschemes.␈α↔In␈α∂1970,␈α⊃he␈α⊂and␈α∂A.␈α⊂Sch␈↓ ¬b␈εα∪␈↓ ¬b␈εαo␈↓ ¬t␈εαnhage␈α∂found␈α⊂an␈α⊂elegan␈α␈t␈α∂way␈α⊂to␈α⊂modify␈α∂the
␈β∧W␈↓ ↓H␈εαmethod,␈α
av␈α␈oiding␈α	all␈α
the␈α	complications␈α
of␈α	complex␈α
n␈α␈um␈α␈bers␈α	and␈α	obtaining␈α
a␈α	v␈α␈ery
␈β¬α␈↓ ↓H␈εαpretty␈α
algorithm␈αcapable␈α
of␈αm␈α␈ultiplying␈α
t␈α␈w␈α␈o␈↓ πα␈ελn␈↓ π_␈εα-bit␈α
n␈α␈um␈α␈bers␈αin␈↓ 	⊃␈ελO␈↓ 	+␈εα(␈↓ 	7␈ελn␈↓ 	S␈εαlog␈↓ 
π␈ελn␈↓ 
#␈εαlog␈↓ 
W␈εαlog␈↓ ␈ελn␈↓  ␈εα)
␈β¬-␈↓ ↓H␈εαsteps.␈α∂We␈α
shall␈α
no␈α␈w␈α
study␈α
their␈α
remarkable␈α
approach␈α
[cf.␈ε∂␈α
Computing␈ε∩␈α
7␈εα␈α
(1971),
␈β¬Y␈↓ ↓H␈εα281↑292].
␈β¬␈␈↓ λ∀␈εn
␈βε∧␈↓ α␈εαIt␈αis␈α
con␈α␈v␈α␈enien␈α␈t␈α
in␈αthe␈α
|rst␈αplace␈α
to␈αreplace␈↓ π/␈ελn␈↓ πO␈εαby␈↓ λα␈εα2␈↓ λ&␈εα,␈αand␈α
to␈αseek␈α
a␈α
procedure
␈βε+␈↓ βJ␈εn␈↓ ε
␈εn
␈βε0␈↓ ↓H␈εαthat␈α
m␈α␈ultiplies␈↓ β8␈εα2␈↓ β\␈εα-bit␈α
n␈α␈um␈α␈bers␈αin␈↓ ¬U␈ελO␈↓ ¬o␈εα(␈↓ ¬{␈εα2␈↓ ε%␈ελn␈↓ εA␈εαlog␈↓ εu␈ελn␈↓ π␈εα)␈α
steps.␈αRoughly␈α
speaking,␈αw␈α␈e␈α
shall
␈βεV␈↓ ¬w␈εn
␈βε[␈↓ ↓H␈εαreduce␈α
the␈α
problem␈α
of␈α
m␈α␈ultiplying␈↓ ¬e␈εα2␈↓ ε	␈εα-bit␈α
n␈α␈um␈α␈bers␈αto␈α
the␈α
problem␈α
of␈α
doing␈α
about
␈βπ↓␈↓ ↓Z␈εn␈↓ ↓l␈ε¬/2␈↓ ∧A␈εn␈↓ ∧S␈ε¬/␈α↓2␈↓ πT␈εn
␈βπε␈↓ ↓H␈εα2␈↓ α∪␈εαm␈α␈ultiplications␈αof␈↓ ∧/␈εα2␈↓ ∧p␈εα-bit␈αn␈α␈um␈α␈bers,␈αwith␈↓ π≤␈ελO␈↓ π6␈εα(␈↓ πB␈εα2␈↓ πf␈ελn␈↓ π|␈εα)␈αauxiliary␈α
steps␈αrequired␈α
to
␈βπ1␈↓ ↓H␈εαpiece␈αthese␈αproducts␈αtogether␈αproperly;␈αthen␈αthere␈αwill␈αbe␈↓ λS␈εαlg␈↓ λu␈ελn␈↓ 	∃␈εαlev␈α␈els␈αof␈αrecursion
␈βπW␈↓ αR␈εn␈↓ π\␈εn
␈βπ\␈↓ ↓H␈εαwith␈↓ α~␈ελO␈↓ α4␈εα(␈↓ α@␈εα2␈↓ αd␈ελn␈↓ αy␈εα)␈αsteps␈αper␈αlev␈α␈el,␈αmaking␈αa␈αtotal␈αof␈↓ π$␈ελO␈↓ π>␈εα(␈↓ πJ␈εα2␈↓ πt␈ελn␈↓ λ⊂␈εαlog␈↓ λD␈ελn␈↓ λZ␈εα)␈αsteps␈αas␈αdesired.
␈βλλ␈↓ α␈εαIt␈αwill␈α
be␈αinstructiv␈α␈e␈α
to␈αpresen␈α␈t␈αthe␈α
construction␈αin␈α
t␈α␈w␈α␈o␈αsteps:␈α
|rst␈αw␈α␈e␈αshall
␈βλ3␈↓ ↓H␈εαstudy␈α
a␈α
procedure␈α
that␈α
in␈α␈v␈α␈olv␈α␈es␈α
most␈α
of␈αthe␈α
importan␈α␈t␈α
ideas␈α
but␈α
doesn't␈α
giv␈α␈e␈α
the
␈βλ←␈↓ ↓H␈εαdesired␈αe}ciency,␈αthen␈αw␈α␈e␈αshall␈α|x␈αup␈αthe␈αe}ciency.
␈β	¬␈↓ β8␈εn
␈β	
␈↓ α␈εαLet␈↓ αL␈ελN␈↓ αx␈εα=␈↓ β&␈εα2␈↓ βT␈εαand␈αsuppose␈α
w␈α␈e␈α
wish␈αto␈α
compute␈α
the␈αproduct␈α
of␈↓ 	E␈ελu␈↓ 	e␈εαand␈↓ 
)␈ελv␈↓ 
<␈εα,␈α
where
␈β	1␈↓ β(␈εN
␈β	6␈↓ ↓H␈εα0␈ε⊗␈α∂∀␈↓ α≠␈ελu␈↓ α1␈εα,␈↓ αA␈ελv␈↓ αc␈εα<␈↓ β⊗␈εα2␈↓ βB␈εα.␈α∃As␈α∂in␈α∂Algorithm␈α∂C␈α∂w␈α␈e␈α∂shall␈α∂break␈α∂these␈↓ λt␈ελN␈↓ 	⊗␈εα-bit␈α∞n␈α␈um␈α␈bers␈α∂in␈α␈to
␈β	a␈↓ ↓H␈εαgroups;␈αlet
␈β
λ␈↓ π≡␈εk␈↓ λg␈εl
␈β
∞␈↓ β{␈ελk␈↓ ∧∃␈εα+␈↓ ∧A␈ελl␈↓ ∧U␈εα=␈↓ ¬β␈ελn␈↓ ¬!␈εα+␈αλ1,␈↓ ε7␈ελK␈↓ ε↑␈εα=␈↓ π␈εα2␈↓ π-␈εα,␈↓ λ¬␈ελL␈↓ λ'␈εα=␈↓ λU␈εα2␈↓ λo␈εα,␈↓ 
p␈εα(33)
␈β
T␈↓ ↓H␈εαand␈αwrite
␈β,␈↓ β↔␈ελu␈↓ β7␈εα=␈α
(␈↓ βq␈ελU␈↓ ∧i␈εα.␈αε.␈αε.␈↓ ¬→␈ελU␈↓ ¬>␈ελU␈↓ ¬d␈εα)␈↓ ε∂␈εα,␈↓ εg␈ελv␈↓ π∧␈εα=␈α
(␈↓ π>␈ελV␈↓ λ3␈εα.␈αε.␈αε.␈↓ λc␈ελV␈↓ 	¬␈ελV␈↓ 	(␈εα)␈↓ 	S␈εα,
␈β9␈↓ ¬}␈ε
L␈↓ 	B␈ε
L
␈β:␈↓ ∧λ␈εK␈↓ ∧≠␈ε¬/2␈ε→␈α↓␈␈ε¬␈α␈1␈↓ ¬0␈ε¬1␈↓ ¬U␈ε¬0␈↓ πR␈εK␈↓ πe␈ε¬/2␈ε→␈α↓␈␈ε¬␈α␈1␈↓ λw␈ε¬1␈↓ 	→␈ε¬0
␈β;␈↓ ¬p␈ε¬2␈↓ 	4␈ε¬2
␈β␈␈↓ ∧/␈εk␈↓ ∧=␈ε→␈␈ε¬1␈↓ ε&␈εl
␈β¬␈↓ ↓H␈εαregarding␈↓ αh␈ελu␈↓ β
␈εαand␈↓ βQ␈ελv␈↓ βp␈εαas␈↓ ∧≥␈εα2␈↓ ∧u␈εαgroups␈α
of␈↓ ε∀␈εα2␈↓ ε.␈εα-bit␈α
n␈α␈um␈α␈bers.␈α∞We␈αwill␈α
select␈αappropriate
␈β0␈↓ ↓H␈εαvalues␈αfor␈↓ αn␈ελk␈↓ β␈εαand␈↓ βQ␈ελl␈↓ βh␈εαlater;␈αit␈αturns␈αout␈α(see␈αex␈α␈ercise␈α10)␈αthat␈αw␈α␈e␈αwill␈αneed␈αto␈αhav␈α␈e
␈β
λ␈↓ ¬A␈ελk␈↓ ¬]␈ε⊗∀␈↓ ε␈ελl␈↓ ε≥␈εα+␈αλ3␈ε⊗␈α
∀␈↓ π∪␈ελn␈↓ π)␈εα,␈↓ 
p␈εα(34)
␈β
`␈↓ ↓H␈εαbut␈απno␈απother␈απconditions.␈α
The␈απabo␈α␈v␈α␈e␈απrepresen␈α␈tation␈απof␈↓ πp␈ελu␈↓ λ
␈εαand␈↓ λN␈ελv␈↓ λg␈εαimplies␈απas␈απbefore␈απthat
␈β∞2␈↓ ¬T␈ε¬(␈↓ ¬↑␈εK␈↓ ¬v␈ε→␈␈ε¬2)␈↓ ε+␈εL␈↓ λ∂␈εL
␈β∞8␈↓ βg␈ελu␈↓ ∧∧␈ε⊗↓␈↓ ∧⊗␈ελv␈↓ ∧3␈εα=␈↓ ∧a␈ελW␈↓ ¬B␈εα2␈↓ εG␈εα+␈↓ εs␈ε⊗↓␈αε↓␈αε↓␈↓ π%␈εα+␈↓ πQ␈ελW␈↓ π⎇␈εα2␈↓ λ+␈εα+␈↓ λW␈ελW␈↓ 	β␈εα,␈↓ 
p␈εα(35)
␈β∞F␈↓ ∧␈␈εK␈↓ ¬↔␈ε→␈␈ε¬2␈↓ πo␈ε¬1␈↓ λu␈ε¬0
␈β∂⊃␈↓ ↓H␈εαwhere
␈β∂≠␈↓ ∧n␈ε↓X␈↓ π→␈ε↓X
␈β∂>␈↓ βu␈ελW␈↓ ∧+␈εα=␈↓ ¬>␈ελU␈↓ ¬a␈ελV␈↓ ε␈εα=␈↓ λ1␈ελU␈↓ λT␈ελV␈↓ λu␈εα,␈↓ 
p␈εα(36)
␈β∂K␈↓ ∧∪␈εr␈↓ ¬U␈εi␈↓ ¬u␈εj␈↓ λH␈εi␈↓ λh␈εj
␈β∂o␈↓ ∧Y␈εi␈↓ ∧d␈ε¬+␈↓ ¬↓␈εj␈↓ ¬∞␈ε¬=␈↓ ¬+␈εr␈↓ ε:␈εi␈↓ εE␈ε¬+␈↓ εb␈εj␈↓ εo␈ε→⊃␈↓ π␈εr␈↓ π~␈ε¬(␈α␈mo␈α↓dulo␈↓ λ
␈εK␈↓ λ"␈ε¬)
␈β⊂;␈↓ 
ε␈εL␈↓ 
n␈ε¬2
␈β⊂@␈↓ ↓H␈εαif␈α
w␈α␈e␈α
de|ne␈↓ β
␈ελU␈↓ β9␈εα=␈↓ βi␈ελV␈↓ ∧⊗␈εα=␈α0␈α
for␈↓ ¬≡␈ελi␈↓ ¬,␈εα,␈↓ ¬<␈ελj␈↓ ¬Y␈ε⊗∃␈↓ ε	␈ελK␈↓ ε ␈εα/2.␈α⊂Clearly␈α
0␈ε⊗␈α∀␈↓ λ-␈ελW␈↓ λe␈ε⊗∀␈εα␈α(␈↓ 	!␈ελK␈↓ 	8␈εα/2)(␈↓ 	t␈εα2␈↓ 
#␈ε⊗␈␈εα␈α	1␈↓ 
b␈εα)␈↓ λ␈εα<
␈β⊂N␈↓ β!␈εi␈↓ β⎇␈εj␈↓ λK␈εr
␈β⊂f␈↓ ↓Z␈ε¬2␈↓ ↓h␈εL␈↓ ↓|␈ε¬+␈↓ α→␈εk␈↓ α'␈ε→␈␈ε¬1
␈β⊂k␈↓ ↓H␈εα2␈↓ αS␈εα;␈α
therefore␈α
if␈αw␈α␈e␈α
knew␈α
the␈↓ ¬i␈ελW␈↓ ε
␈εα's,␈α
w␈α␈e␈α
could␈αcompute␈↓ λ[␈ελu␈↓ λv␈ε⊗↓␈↓ 	¬␈ελv␈↓ 	"␈εαby␈α
adding␈α
up␈α
the
␈β⊂w␈↓ βl␈ε↓␈␈↓ ¬∨␈ε↓↓
␈β⊃↔␈↓ ↓H␈εαterms␈αin␈α(35),␈αin␈↓ βR␈ελO␈↓ βz␈ελK␈↓ ∧_␈εα(2␈↓ ∧6␈ελL␈↓ ∧V␈εα+␈↓ ¬α␈ελk␈↓ ¬∪␈εα)␈↓ ¬7␈εα=␈↓ ¬e␈ελO␈↓ ε␈εα(␈↓ ε␈ελN␈↓ ε-␈εα)␈αfurther␈αsteps.
␈β∪(

␈β↓Y␈↓ ↓H␈εα288␈↓ α=␈ε∞A␈α␈RITH␈α␈METIC␈εα␈↓ 
b4.3.3
␈βα(␈↓ α␈εαOur␈α∞goal␈α∞is␈α∞to␈α∞compute␈α∞the␈↓ ¬N␈ελW␈↓ επ␈εαexactly;␈α∂and␈α∞w␈α␈e␈α∞can␈α∞do␈α∞this␈α∞by␈α
computing
␈βα5␈↓ ¬l␈εr
␈βαN␈↓ 	9␈εL␈↓ 
≡␈ε¬2
␈βαS␈↓ ↓H␈εαtheir␈αvalue␈αmod␈↓ βM␈ελM␈↓ βs␈εα,␈αwhere␈↓ ∧q␈ελM␈↓ ¬"␈εαis␈αan␈α␈y␈αn␈α␈um␈α␈ber␈αlarger␈αthan␈α(␈↓ λS␈ελK␈↓ λk␈εα/2)(␈↓ 	'␈εα2␈↓ 	T␈ε⊗␈␈εα␈αλ1␈↓ 
∩␈εα)␈↓ 
-␈εα.␈αOne␈αof
␈βαy␈↓ εb␈ε¬4␈↓ εq␈εL
␈βα}␈↓ ↓H␈εαthe␈α
k␈α␈ey␈αideas␈αis␈α
that␈αw␈α␈e␈α
can␈αchoose␈↓ ¬s␈ελM␈↓ ε"␈εα=␈↓ εP␈εα2␈↓ π␈εα+␈αε1,␈αand␈αcompute␈α
the␈↓ 	n␈ελW␈↓ 
$␈εαby␈α
doing
␈ββ␈↓ 
␈εr
␈ββ*␈↓ ↓H␈εαa␈α\fast␈αFourier␈α
transform"␈αmodulo␈↓ ¬w␈ελM␈↓ ε≥␈εα,␈αwhere␈α
the␈↓ πZ␈ελK␈↓ πx␈εαth␈αroot␈α
of␈αunity␈↓ 	⎇␈ελ|␈↓ 
!␈εαw␈α␈e␈αuse␈αis
␈ββU␈↓ ↓H␈εαa␈αpo␈α␈w␈α␈er␈αof␈α2␈α(so␈αthat␈αm␈α␈ultiplication␈αby␈αpo␈α␈w␈α␈ers␈αof␈↓ πW␈ελ|␈↓ πz␈εαis␈αv␈α␈ery␈αsimple).
␈β∧␈↓ α␈εαBefore␈α
discussing␈α
this␈α
idea␈α
in␈α
detail,␈αa␈α
n␈α␈umerical␈α
example␈α
of␈α
what␈α
w␈α␈e'v␈α␈e␈α
said
␈β∧+␈↓ ↓H␈εαso␈α
far␈α
may␈α
help␈α
to␈αclarify␈α
things.␈αSuppose␈α
that␈αw␈α␈e␈α
wan␈α␈t␈α
to␈α
m␈α␈ultiply␈α
t␈α␈w␈α␈o␈α
4096-bit
␈β∧V␈↓ ↓H␈εαn␈α␈um␈α␈bers,␈αλobtaining␈αλan␈αλ8192-bit␈αλproduct;␈α	th␈α␈us␈↓ πλ␈ελn␈↓ π(␈εα=␈α
12␈αλin␈αλthe␈αλabo␈α␈v␈α␈e␈αλdiscussion,␈αλand
␈β¬α␈↓ ↓H␈εαw␈α␈e␈α
may␈α
choose␈↓ β:␈ελk␈↓ βU␈εα=␈α
8,␈↓ ∧*␈ελl␈↓ ∧>␈εα=␈α
5.␈αThe␈α
bits␈α
of␈↓ εI␈ελu␈↓ εi␈εαand␈↓ π-␈ελv␈↓ πJ␈εαare␈α
partitioned␈αin␈α␈to␈α
128␈α
groups
␈β¬-␈↓ ↓H␈εαof␈α
32␈α
bits␈α∞each,␈α
and␈α∞the␈α
basic␈α∞idea␈α
is␈α
to␈α∞|nd␈α
the␈α
256␈α∞con␈α␈v␈α␈olution␈α
products␈α
(36)
␈β¬X␈↓ ↓H␈εαand␈α
to␈αadd␈α
them␈αtogether␈α(after␈α
appropriate␈αshifting).␈αThe␈αcon␈α␈v␈α␈olution␈α
products
␈βεβ␈↓ ↓H␈εαhav␈α␈e␈α∂at␈α⊂most␈α⊂64␈α
+␈α7␈α⊂=␈α⊃71␈α∂bits␈α⊂each,␈α⊃so␈α⊂it␈α∂surely␈α⊂su}ces␈α⊂to␈α⊂determine␈α∂them
␈βε)␈↓ βA␈ε¬1␈α↓28
␈βε.␈↓ ↓H␈εαmodulo␈↓ αJ␈ελM␈↓ α}␈εα=␈↓ β/␈εα2␈↓ βv␈εα+␈α
1.␈α∪We␈α∞will␈α∂see␈α∞that␈α∞it␈α∂is␈α∞possible␈α∞to␈α∂|nd␈α∞the␈α∞con␈α␈v␈α␈olution
␈βεZ␈↓ ↓H␈εαproducts␈α
rapidly␈αby␈α
|rst␈α
computing␈αtheir␈α
|nite␈αFourier␈α
transform␈αmod␈↓ 
 ␈ελM␈↓ 
F␈εα,␈α
using
␈βπ¬␈↓ ↓H␈εαthe␈α∞in␈α␈teger␈↓ β↓␈ελ|␈↓ β&␈εα=␈α∂2␈α∞as␈α∞a␈α∂256th␈α∞\root␈α∂of␈α∞unity."␈α∪These␈α∂in␈α␈teger␈α∞calculations␈α∞mod
␈βπ0␈↓ ↓H␈ελM␈↓ ↓x␈εαturn␈αout␈αto␈αhav␈α␈e␈αall␈αthe␈αnecessary␈αproperties␈αof␈αcomplex␈αroots␈αof␈αunity␈αin␈αthe
␈βπ[␈↓ ↓H␈εαordinary␈αFourier␈αtransform␈α(32).
␈βλ↓␈↓ ∧5␈εm
␈βλε␈↓ α␈εαArithmetic␈α∂mod␈α∞(␈↓ ∧#␈εα2␈↓ ∧Y␈εα+␈α
1)␈α∞is␈α∂somewhat␈α∂similar␈α∞to␈α∂ones'␈α∂complemen␈α␈t␈α∞arith-
␈βλ-␈↓ β"␈εm
␈βλ2␈↓ ↓H␈εαmetic,␈αmod␈α(␈↓ β⊂␈εα2␈↓ βD␈ε⊗␈␈εα␈αλ1),␈αalthough␈αit␈α
is␈αsligh␈α␈tly␈αmore␈αcomplicated;␈αw␈α␈e␈αhav␈α␈e␈αalready
␈βλ]␈↓ ↓H␈εαin␈α␈v␈α␈estigated␈α
the␈α∞idea␈α
brie⎇y␈α∞in␈α∞Section␈α
3.2.1.1.␈α⊃Num␈α␈bers␈α∞can␈α
be␈α∞represen␈α␈ted␈α
as
␈β	β␈↓ 
#␈εm
␈β	λ␈↓ ↓H␈ελm␈↓ ↓g␈εα-bit␈α	quan␈α␈tities␈α	in␈α	binary␈α	notation,␈α	ex␈α␈cept␈α	for␈α	the␈α	special␈α	value␈ε⊗␈α	␈␈εα1␈ε⊗␈α
⊃␈↓ 
⊃␈εα2␈↓ 
=␈εα,␈α	which
␈β	.␈↓ λG␈εm
␈β	3␈↓ ↓H␈εαmay␈α
be␈α	represen␈α␈ted␈α
in␈α
some␈α
special␈α
way.␈αAddition␈α
mod␈α
(␈↓ λ5␈εα2␈↓ λf␈εα+␈α¬1)␈α
is␈α
easily␈α
done␈α	in
␈β	↑␈↓ ↓H␈ελO␈↓ ↓b␈εα(␈↓ ↓n␈ελm␈↓ α
␈εα)␈α
cy␈α␈cles,␈α
since␈α
a␈αcarry␈α
o{␈α
the␈α
left␈αend␈α
merely␈α
means␈αthat␈α
w␈α␈e␈α
m␈α␈ust␈αsubtract
␈β
¬␈↓ εr␈εm
␈β

␈↓ ↓H␈εα1␈α
at␈αthe␈αrigh␈α␈t;␈αsimilarly,␈αsubtraction␈αmod␈α
(␈↓ ε`␈εα2␈↓ π∩␈εα+␈απ1)␈α
is␈αquite␈αsimple.␈αFurthermore,
␈β
0␈↓ ∧⊗␈εr
␈β
5␈↓ ↓H␈εαw␈α␈e␈αcan␈αm␈α␈ultiply␈αby␈↓ ∧∧␈εα2␈↓ ∧/␈εαin␈↓ ∧Y␈ελO␈↓ ∧s␈εα(␈↓ ∧␈␈ελm␈↓ ¬∨␈εα)␈αcy␈α␈cles,␈αwhen␈α0␈ε⊗␈α
∀␈↓ πP␈ελr␈↓ πj␈εα<␈↓ λ_␈ελm␈↓ λ7␈εα,␈αsince
␈β
|␈↓ ↓Z␈εr
␈ββ␈↓ ↓H␈εα2␈↓ ↓o␈ε⊗↓␈εα␈αλ(␈↓ α
␈ελu␈↓ αm␈εα.␈αε.␈αε.␈↓ β≥␈ελu␈↓ β@␈ελu␈↓ βc␈εα)␈↓ ∧π␈ε⊗⊃␈εα␈α
(␈↓ ∧A␈ελu␈↓ ¬K␈εα.␈αε.␈αε.␈↓ ¬{␈ελu␈↓ ε$␈εα0␈↓ ε<␈εα.␈αε.␈αε.␈↓ εl␈εα0␈↓ ε}␈εα)␈↓ π ␈ε⊗␈␈εα␈αλ(0␈↓ πp␈εα.␈αε.␈αε.␈↓ λ ␈εα0␈↓ λ8␈ελu␈↓ 	_␈εα.␈αε.␈αε.␈↓ 	H␈ελu␈↓ 
 ␈εα)␈↓ 
;␈εα.␈↓ 
p␈εα(37)
␈β⊂␈↓ α"␈εm␈↓ α;␈ε→␈␈ε¬1␈↓ β1␈ε¬1␈↓ βT␈ε¬0␈↓ βo␈ε¬2␈↓ ∧V␈εm␈↓ ∧o␈ε→␈␈↓ ¬␈εr␈↓ ¬~␈ε→␈␈ε¬␈α␈1␈↓ ε∂␈ε¬0␈↓ π
␈ε¬2␈↓ λM␈εm␈↓ λg␈ε→␈␈ε¬␈α␈1␈↓ 	\␈εm␈↓ 	v␈ε→␈␈↓ 
∪␈εr␈↓ 
,␈ε¬2
␈βK␈↓ ¬>␈εk
␈βP␈↓ α␈εαGiv␈α␈en␈α
a␈α
sequence␈αof␈↓ ∧T␈ελK␈↓ ∧⎇␈εα=␈↓ ¬,␈εα2␈↓ ¬Z␈εαin␈α␈tegers␈α(␈↓ εk␈ελa␈↓ π␈εα,␈↓ π≠␈εα.␈αε.␈αε.␈↓ πK␈εα,␈↓ π[␈ελa␈↓ λ/␈εα),␈αand␈α
an␈α
in␈α␈teger␈↓ 
C␈ελ|␈↓ 
f␈εαsuch
␈β↑␈↓ ε|␈ε¬0␈↓ πk␈εK␈↓ λβ␈ε→␈␈ε¬1
␈βv␈↓ α-␈εK
␈β{␈↓ ↓H␈εαthat␈↓ α⊗␈ελ|␈↓ αO␈ε⊗⊃␈εα␈α
1␈α
(modulo␈↓ ∧%␈ελM␈↓ ∧J␈εα),␈αthe␈αin␈α␈teger␈αFourier␈αtransform
␈β;␈↓ ∧`␈ε↓X
␈βD␈↓ ∧/␈ε↓∩␈↓ ¬␈␈ε↓∪
␈βY␈↓ ¬L␈εs␈↓ ¬Y␈εt
␈β←␈↓ βY␈εα∂␈↓ βY␈ελa␈↓ ∧↓␈εα=␈↓ ¬5␈ελ|␈↓ ¬c␈ελa␈↓ ε≠␈εαmod␈↓ εe␈ελM␈↓ π
␈εα,␈↓ πb0␈ε⊗␈α
∀␈↓ λ,␈ελs␈↓ λE␈εα<␈↓ λs␈ελK␈↓ 	⊃␈εα,␈↓ 
p␈εα(38)
␈βl␈↓ βk␈εs␈↓ ¬t␈εt
␈β
⊂␈↓ ∧E␈ε¬0␈ε→∀␈↓ ∧p␈εt␈↓ ∧{␈ε¬<␈↓ ¬_␈εK
␈β
K␈↓ ↓H␈εαcan␈αbe␈αcalculated␈αrapidly␈αas␈αfollo␈α␈ws.␈α(In␈αthese␈αform␈α␈ulas␈αthe␈↓ λl␈ελs␈↓ 	⊃␈εαand␈↓ 	V␈ελt␈↓ 	z␈εαare␈αeither␈α0
␈β
X␈↓ λx␈εj␈↓ 	a␈εj
␈β
q␈↓ ¬o␈εk
␈β
v␈↓ ↓H␈εαor␈α1,␈αso␈αthat␈αeach␈αstep␈αrepresen␈α␈ts␈↓ ¬]␈εα2␈↓ ε	␈εαcomputations.)
␈β∞%␈↓ β)␈ε¬[0]
␈β∞*␈↓ ↓H␈εαStep␈α0.␈α→Let␈↓ β⊃␈ελA␈↓ βG␈εα(␈↓ βS␈ελt␈↓ ∧_␈εα,␈↓ ∧(␈εα.␈αε.␈αε.␈↓ ∧X␈εα,␈↓ ∧h␈ελt␈↓ ¬↓␈εα)␈α
=␈↓ ¬E␈ελa␈↓ ¬`␈εα,␈αwhere␈↓ ε↑␈ελt␈↓ εu␈εα=␈α
(␈↓ π/␈ελt␈↓ πz␈εα.␈αε.␈αε.␈↓ λ*␈ελt␈↓ λC␈εα)␈↓ λ]␈εα.
␈β∞8␈↓ β↑␈εk␈↓ βm␈ε→␈␈ε¬␈α␈1␈↓ ∧s␈ε¬0␈↓ ¬V␈εt␈↓ π:␈εk␈↓ πI␈ε→␈␈ε¬␈α␈1␈↓ λ5␈ε¬0␈↓ λO␈ε¬2
␈β∞Y␈↓ β%␈ε¬[1]
␈β∞↑␈↓ ↓H␈εαStep␈α1.␈α→Set␈↓ β
␈ελA␈↓ βC␈εα(␈↓ βO␈ελs␈↓ ∧∃␈εα,␈↓ ∧%␈ελt␈↓ ∧i␈εα,␈↓ ∧y␈εα.␈αε.␈αε.␈↓ ¬)␈εα,␈↓ ¬9␈ελt␈↓ ¬S␈εα)␈ε⊗␈α
 
␈β∞l␈↓ β[␈εk␈↓ βj␈ε→␈␈ε¬1␈↓ ∧0␈εk␈↓ ∧>␈ε→␈␈ε¬2␈↓ ¬D␈ε¬0
␈β∞q␈↓ βd␈ε↓␈␈↓ 
∨␈ε↓↓
␈β∂␈↓ ∧
␈ε¬[0]␈↓ ε[␈ε¬(␈↓ εd␈εs␈↓ π≥␈ε¬0␈↓ π+␈ε¬...␈↓ πC␈ε¬0␈↓ πR␈ε¬)␈↓ λ→␈ε¬[0]
␈β∂⊃␈↓ βr␈ελA␈↓ ∧(␈εα(0,␈↓ ∧V␈ελt␈↓ ¬≠␈εα,␈↓ ¬+␈εα.␈αε.␈αε.␈↓ ¬[␈εα,␈↓ ¬k␈ελt␈↓ ε∧␈εα)␈αλ+␈↓ εD␈ελ|␈↓ πo␈ε⊗↓␈↓ λ↓␈ελA␈↓ λ7␈εα(1,␈↓ λe␈ελt␈↓ 	*␈εα,␈↓ 	:␈εα.␈αε.␈αε.␈↓ 	j␈εα,␈↓ 	z␈ελt␈↓ 
∪␈εα)␈↓ 
3␈εαmod␈↓ 
⎇␈ελM␈↓ "␈εα.
␈β∂∀␈↓ εo␈ε
k␈↓ ε{␈ε≠␈␈επ1␈↓ π[␈επ2
␈β∂≡␈↓ ∧a␈εk␈↓ ∧o␈ε→␈␈ε¬2␈↓ ¬u␈ε¬0␈↓ λp␈εk␈↓ λ}␈ε→␈␈ε¬2␈↓ 
∧␈ε¬0
␈β∂E␈↓ β%␈ε¬[2]
␈β∂J␈↓ ↓H␈εαStep␈α2.␈α→Set␈↓ β
␈ελA␈↓ βC␈εα(␈↓ βO␈ελs␈↓ ∧∃␈εα,␈↓ ∧%␈ελs␈↓ ∧k␈εα,␈↓ ∧{␈ελt␈↓ ¬?␈εα,␈↓ ¬O␈εα.␈αε.␈αε.␈↓ ¬␈␈εα,␈↓ ε∂␈ελt␈↓ ε(␈εα)␈ε⊗␈α
 
␈β∂W␈↓ β[␈εk␈↓ βj␈ε→␈␈ε¬1␈↓ ∧1␈εk␈↓ ∧@␈ε→␈␈ε¬␈α␈2␈↓ ¬¬␈εk␈↓ ¬∀␈ε→␈␈ε¬3␈↓ ε~␈ε¬0
␈β∂]␈↓ α␈ε↓␈␈↓ 
∨␈ε↓↓
␈β∂w␈↓ α&␈ε¬[1]␈↓ ¬L␈ε¬(␈↓ ¬V␈εs␈↓ ε∂␈εs␈↓ εG␈ε¬0␈↓ εV␈ε¬...␈↓ εn␈ε¬0␈↓ ε|␈ε¬)␈↓ πC␈ε¬[1]
␈β∂|␈↓ α∞␈ελA␈↓ αD␈εα(␈↓ αP␈ελs␈↓ β⊗␈εα,␈αε0,␈↓ βH␈ελt␈↓ ∧␈εα,␈↓ ∧≤␈εα.␈αε.␈αε.␈↓ ∧L␈εα,␈↓ ∧\␈ελt␈↓ ∧u␈εα)␈αλ+␈↓ ¬5␈ελ|␈↓ π→␈ε⊗↓␈↓ π+␈ελA␈↓ πa␈εα(␈↓ πm␈ελs␈↓ λ3␈εα,␈αε1,␈↓ λe␈ελt␈↓ 	*␈εα,␈↓ 	:␈εα.␈αε.␈αε.␈↓ 	j␈εα,␈↓ 	z␈ελt␈↓ 
∪␈εα)␈↓ 
3␈εαmod␈↓ 
⎇␈ελM␈↓ "␈εα.
␈β⊂␈↓ ¬`␈ε
k␈↓ ¬m␈ε≠␈␈επ␈α␈2␈↓ ε→␈ε
k␈↓ ε&␈ε≠␈␈επ␈α␈1␈↓ πε␈επ2
␈β⊂
␈↓ α\␈εk␈↓ αj␈ε→␈␈ε¬1␈↓ βR␈εk␈↓ βa␈ε→␈␈ε¬3␈↓ ∧g␈ε¬0␈↓ πy␈εk␈↓ λλ␈ε→␈␈ε¬1␈↓ λp␈εk␈↓ λ}␈ε→␈␈ε¬3␈↓ 
∧␈ε¬0
␈β⊂0␈↓ α␈εα.␈αε.␈αε.
␈β⊂←␈↓ β%␈ε¬[␈↓ β-␈εk␈↓ β;␈ε¬]
␈β⊂d␈↓ ↓H␈εαStep␈↓ α~␈ελk␈↓ α+␈εα.␈α~Set␈↓ β
␈ελA␈↓ βC␈εα(␈↓ βO␈ελs␈↓ ∧∃␈εα,␈↓ ∧%␈εα.␈αε.␈αε.␈↓ ∧U␈εα,␈↓ ∧e␈ελs␈↓ ∧␈␈εα,␈↓ ¬∂␈ελs␈↓ ¬*␈εα)␈ε⊗␈α
 
␈β⊂r␈↓ β[␈εk␈↓ βj␈ε→␈␈ε¬␈α␈1␈↓ ∧q␈ε¬1␈↓ ¬≠␈ε¬0
␈β⊂w␈↓ αz␈ε↓␈␈↓ 
∨␈ε↓↓
␈β⊃∩␈↓ β ␈ε¬[␈↓ β(␈εk␈↓ β6␈ε→␈␈ε¬1]␈↓ ε∨␈ε¬(␈↓ ε(␈εs␈↓ ε>␈εs␈↓ εS␈ε¬...␈↓ εk␈εs␈↓ π$␈ε¬)␈↓ πk␈ε¬[␈↓ πs␈εk␈↓ λ↓␈ε→␈␈ε¬1␈α↓]
␈β⊃↔␈↓ βλ␈ελA␈↓ βi␈εα(␈↓ βu␈ελs␈↓ ∧;␈εα,␈↓ ∧K␈εα.␈αε.␈αε.␈↓ ∧{␈εα,␈↓ ¬␈ελs␈↓ ¬&␈εα,␈αε0)␈αλ+␈↓ ελ␈ελ|␈↓ πA␈ε⊗↓␈↓ πS␈ελA␈↓ λ5␈εα(␈↓ λA␈ελs␈↓ 	ε␈εα,␈↓ 	⊗␈εα.␈αε.␈αε.␈↓ 	F␈εα,␈↓ 	V␈ελs␈↓ 	q␈εα,␈αε1)␈↓ 
3␈εαmod␈↓ 
⎇␈ελM␈↓ "␈εα.
␈β⊃~␈↓ ε3␈επ0␈↓ εH␈επ1␈↓ εv␈ε
k␈↓ πα␈ε≠␈␈επ1␈↓ π.␈επ2
␈β⊃$␈↓ ∧↓␈εk␈↓ ∧⊂␈ε→␈␈ε¬1␈↓ ¬↔␈ε¬1␈↓ λM␈εk␈↓ λ[␈ε→␈␈ε¬1␈↓ 	b␈ε¬1
␈β∪(

␈β↓Y␈↓ ↓H␈εα4.3.3␈ε∞␈↓ πλHO␈α␈W␈α	F␈α|AST␈αλCAN␈α	WE␈α	MU␈α␈L␈α}TIP␈α␈L␈α}Y␈εα␈α␈?␈↓ 
v␈εα289
␈βα(␈↓ ↓H␈εαIt␈αis␈αnot␈αdi}cult␈αto␈αpro␈α␈v␈α␈e␈αby␈αinduction␈αthat␈αw␈α␈e␈αhav␈α␈e
␈βαg␈↓ α∧␈ε¬[␈↓ α␈εj␈↓ α→␈ε¬]
␈βαm␈↓ ↓l␈ελA␈↓ α!␈εα(␈↓ α-␈ελs␈↓ αs␈εα,␈↓ ββ␈εα.␈αε.␈αε.␈↓ β3␈εα,␈↓ βC␈ελs␈↓ ∧π␈εα,␈↓ ∧↔␈ελt␈↓ ¬ε␈εα,␈↓ ¬⊗␈εα.␈αε.␈αε.␈↓ ¬F␈εα,␈↓ ¬V␈ελt␈↓ ¬o␈εα)
␈βαz␈↓ α9␈εk␈↓ αG␈ε→␈␈ε¬1␈↓ βO␈εk␈↓ β]␈ε→␈␈↓ βz␈εj␈↓ ∧"␈εk␈↓ ∧0␈ε→␈␈↓ ∧M␈εj␈↓ ∧Z␈ε→␈␈ε¬1␈↓ ¬`␈ε¬0
␈ββ∪␈↓ ¬6␈ε↓X
␈ββ0␈↓ εd␈ε¬(␈↓ εn␈εs␈↓ π∧␈εs␈↓ π→␈ε¬...␈↓ π1␈εs␈↓ πj␈ε¬)␈↓ π␈␈ε→↓␈ε¬(␈↓ λ⊂␈εt␈↓ λH␈ε¬...␈↓ λ`␈εt␈↓ 	_␈ε¬0␈↓ 	&␈ε¬...␈↓ 	>␈ε¬0␈↓ 	M␈ε¬)
␈ββ6␈↓ ∧,␈εα=␈↓ εM␈ελ|␈↓ 	g␈ελa␈↓ 
∂␈εαmod␈↓ 
Y␈ελM␈↓ 
}␈εα,
␈ββ9␈↓ εx␈επ0␈↓ π∞␈επ1␈↓ π<␈ε
k␈↓ πH␈ε≠␈␈επ1␈↓ πt␈επ2␈↓ λ~␈ε
k␈↓ λ&␈ε≠␈␈επ1␈↓ λi␈ε
k␈↓ λv␈ε≠␈␈↓ 	␈ε
j␈↓ 	V␈επ2
␈ββD␈↓ 	x␈εt
␈ββh␈↓ ∧Z␈ε¬0␈ε→∀␈↓ ¬¬␈εt␈↓ ¬<␈ε¬,␈↓ ¬D␈ε¬...␈↓ ¬\␈ε¬,␈↓ ¬d␈εt␈↓ ε≤␈ε→∀␈ε¬1
␈ββp␈↓ ¬∞␈ε
k␈↓ ¬≠␈ε≠␈␈επ␈α␈1␈↓ ¬n␈ε
k␈↓ ¬z␈ε≠␈␈↓ ε⊃␈ε
j
␈β∧
␈↓ ↓H␈εαso␈αthat
␈β∧2␈↓ β≡␈ε¬[␈↓ β&␈εk␈↓ β5␈ε¬]
␈β∧8␈↓ βε␈ελA␈↓ β=␈εα(␈↓ βI␈ελs␈↓ ∧∂␈εα,␈↓ ∧∨␈εα.␈αε.␈αε.␈↓ ∧O␈εα,␈↓ ∧←␈ελs␈↓ ∧y␈εα,␈↓ ¬	␈ελs␈↓ ¬#␈εα)␈α
=␈↓ ¬g␈εα∂␈↓ ¬g␈ελa␈↓ εε␈εα,␈↓ ε↑␈εαwhere␈↓ πF␈ελs␈↓ π←␈εα=␈α
(␈↓ λ→␈ελs␈↓ λ3␈ελs␈↓ λT␈εα.␈αε.␈αε.␈↓ 	∧␈ελs␈↓ 	I␈εα)␈↓ 	d␈εα.
␈β∧E␈↓ βU␈εk␈↓ βc␈ε→␈␈ε¬1␈↓ ∧k␈ε¬1␈↓ ¬∃␈ε¬0␈↓ ¬y␈εs␈↓ λ%␈ε¬0␈↓ λ?␈ε¬1␈↓ 	⊂␈εk␈↓ 	≡␈ε→␈␈ε¬1␈↓ 	U␈ε¬2
␈β∧t␈↓ ↓H␈εα(Note␈α⊂the␈α⊃rev␈α␈ersed␈α⊃order␈α⊃of␈α⊃the␈α⊃binary␈α⊃digits␈α⊂in␈↓ πf␈ελs␈↓ πu␈εα.␈α≠For␈α⊃further␈α⊃discussion␈α⊂of
␈β¬ ␈↓ ↓H␈εαtransforms␈αsuch␈αas␈αthis,␈αsee␈αSection␈α4.6.4.)
␈β¬K␈↓ α␈εαNo␈α␈w␈αw␈α␈e␈αhav␈α␈e␈αenough␈αmachinery␈α
at␈αour␈αdisposal␈αto␈αdo␈αthe␈αcalculation␈αof␈αall
␈β¬q␈↓ ¬∞␈ε¬8␈↓ ¬≤␈εL␈↓ ¬0␈ε¬/␈↓ ¬?␈εK␈↓ πλ␈εK␈↓ πt␈ε¬8␈↓ λα␈εL
␈β¬v␈↓ ↓H␈ελW␈↓ αα␈εαas␈α∂promised.␈α∃Let␈↓ ∧#␈ελ|␈↓ ∧I␈εα=␈↓ ∧|␈εα2␈↓ ¬W␈εα,␈α⊂so␈α∂that␈↓ εq␈ελ|␈↓ π/␈εα=␈↓ πb␈εα2␈↓ λ%␈ε⊗⊃␈εα␈α∂1␈α∂(modulo␈↓ 
¬␈ελM␈↓ 
+␈εα),␈α∂where
␈βεβ␈↓ ↓f␈εr
␈βε≤␈↓ α7␈ε¬4␈↓ αF␈εL
␈βε!␈↓ ↓H␈ελM␈↓ ↓w␈εα=␈↓ α%␈εα2␈↓ α↑␈εα+␈α∧1.␈αThe␈α	in␈α␈teger␈α	fast␈α	Fourier␈α	transform␈α	algorithm␈α	abo␈α␈v␈α␈e␈αλcan␈α	be␈α	applied
␈βεC␈↓ 	I␈εα∂␈↓ 
@␈εα∂
␈βεL␈↓ ↓H␈εαto␈α
(␈↓ ↓}␈ελU␈↓ α#␈εα,␈↓ α3␈εα.␈αε.␈αε.␈↓ αc␈εα,␈↓ αs␈ελU␈↓ βM␈εα),␈αwhere␈↓ ∧T␈ελU␈↓ ¬%␈εαthrough␈↓ ε,␈ελU␈↓ π⊂␈εαare␈α
zero,␈αto␈α
obtain␈α
(␈↓ 	C␈ελU␈↓ 	j␈εα,␈↓ 	z␈εα.␈αε.␈αε.␈↓ 
*␈εα,␈↓ 
:␈ελU␈↓ ⊗␈εα);
␈βεZ␈↓ α∃␈ε¬0␈↓ β
␈εK␈↓ β"␈ε→␈␈ε¬1␈↓ εC␈εK␈↓ ε[␈ε→␈␈ε¬␈α␈1␈↓ 	\␈ε¬0␈↓ 
S␈εK␈↓ 
k␈ε→␈␈ε¬1
␈βε[␈↓ ∧k␈εK␈↓ ∧}␈ε¬/␈α↓2
␈βεs␈↓ ¬~␈εk␈↓ 
π␈εe
␈βεx␈↓ ↓H␈εαeach␈α
of␈α
the␈↓ β¬␈ελk␈↓ β#␈εαsteps␈α
in␈α␈v␈α␈olv␈α␈es␈↓ ¬λ␈εα2␈↓ ¬6␈εαcomputations␈α
of␈α
the␈α
form␈↓ λX␈ελc␈↓ λr␈εα=␈α(␈↓ 	-␈ελa␈↓ 	H␈εα+␈↓ 	u␈εα2␈↓ 
∩␈ελb␈↓ 
!␈εα)␈↓ 
3␈εαmod␈↓ 
⎇␈ελM␈↓ "␈εα,
␈βπ~␈↓ 	.␈εα∂␈↓ 
"␈εα∂
␈βπ≡␈↓ ∧x␈εk
␈βπ#␈↓ ↓H␈εαso␈αthe␈αrunning␈αtime␈αis␈↓ ∧.␈ελO␈↓ ∧H␈εα(␈↓ ∧T␈ελk␈↓ ∧f␈εα2␈↓ ¬π␈ελL␈↓ ¬∨␈εα)␈α
=␈↓ ¬c␈ελO␈↓ ¬⎇␈εα(␈↓ ε	␈ελk␈↓ ε≠␈ελN␈↓ ε=␈εα).␈αSimilarly␈αw␈α␈e␈αobtain␈α(␈↓ 	*␈ελV␈↓ 	N␈εα,␈↓ 	↑␈εα.␈αε.␈αε.␈↓ 
∞␈εα,␈↓ 
≡␈ελV␈↓ 
v␈εα)␈αin
␈βπ0␈↓ 	@␈ε¬0␈↓ 
3␈εK␈↓ 
K␈ε→␈␈ε¬1
␈βπN␈↓ ↓H␈ελO␈↓ ↓b␈εα(␈↓ ↓n␈ελk␈↓ α␈ελN␈↓ α!␈εα)␈αcy␈α␈cles.␈αThe␈αnext␈αstep␈αis␈αto␈αcompute
␈βλ
␈↓ ¬L␈εα∂␈↓ ¬r␈εα∂␈↓ ε'␈εα∂␈↓ εL␈εα∂␈↓ πB␈εα∂␈↓ λ≤␈εα∂
␈βλ∪␈↓ αx␈εα(␈↓ β∧␈ελa␈↓ β#␈εα,␈↓ β3␈ελa␈↓ βS␈εα,␈↓ βc␈εα.␈αε.␈αε.␈↓ ∧∪␈εα,␈↓ ∧#␈ελa␈↓ ∧v␈εα)␈α
=␈α
(␈↓ ¬F␈ελU␈↓ ¬n␈ελV␈↓ ε⊃␈εα,␈↓ ε!␈ελU␈↓ εH␈ελV␈↓ εl␈εα,␈↓ ε|␈εα.␈αε.␈αε.␈↓ π,␈εα,␈↓ π<␈ελU␈↓ λ_␈ελV␈↓ λp␈εα)␈↓ 	α␈εαmod␈↓ 	L␈ελM␈↓ 	r␈εα,
␈βλ ␈↓ β∃␈ε¬0␈↓ βD␈ε¬1␈↓ ∧3␈εK␈↓ ∧K␈ε→␈␈ε¬1␈↓ ¬←␈ε¬0␈↓ εβ␈ε¬0␈↓ ε:␈ε¬1␈↓ ε↑␈ε¬1␈↓ πU␈εK␈↓ πm␈ε→␈␈ε¬1␈↓ λ-␈εK␈↓ λE␈ε→␈␈ε¬1
␈βλX␈↓ ↓H␈εαusing␈α	a␈α
high-speed␈α	m␈α␈ultiplication␈α
procedure␈α	for␈α
each␈α	of␈α
these␈α	products,␈α
obtaining
␈β	β␈↓ ↓H␈εαthe␈α⊂results␈α⊃mod␈↓ βU␈ελM␈↓ ∧␈εαby␈α⊂subtracting␈α⊃the␈α⊂most␈α⊃signi|can␈α␈t␈α⊃halv␈α␈es␈α⊂from␈α⊃the␈α⊂least
␈β	.␈↓ ↓H␈εαsigni|can␈α␈t␈αλhalv␈α␈es.␈α
If␈αλw␈α␈e␈αλno␈α␈w␈αλuse␈αλthe␈αλfast␈αλFourier␈αλtransform␈αλa␈αλthird␈αλtime,␈αλobtaining
␈β	Y␈↓ ↓H␈εα(␈↓ ↓T␈εα∂␈↓ ↓T␈ελa␈↓ ↓t␈εα,␈↓ α∧␈εα∂␈↓ α∧␈ελa␈↓ α$␈εα,␈↓ α4␈εα.␈αε.␈αε.␈↓ αd␈εα,␈↓ αt␈εα∂␈↓ αt␈ελa␈↓ βI␈εα),␈α
this␈α
is␈α
enough␈α
to␈α	determine␈α
(␈↓ π$␈ελW␈↓ πP␈εα,␈↓ π`␈ελW␈↓ λ
␈εα,␈↓ λ≥␈εα.␈αε.␈αε.␈↓ λM␈εα,␈↓ λ]␈ελW␈↓ 	>␈εα)␈α
without␈α	m␈α␈uch
␈β	g␈↓ ↓f␈ε¬0␈↓ α⊗␈ε¬1␈↓ βε␈εK␈↓ β≡␈ε→␈␈ε¬1␈↓ πB␈ε¬0␈↓ π}␈ε¬1␈↓ λ{␈εK␈↓ 	∪␈ε→␈␈ε¬1
␈β
∧␈↓ ↓H␈εαmore␈αw␈α␈ork,␈αsince␈αw␈α␈e␈αshall␈αpro␈α␈v␈α␈e␈αthat
␈β
C␈↓ ¬%␈εk
␈β
I␈↓ ∧<␈εα∂␈↓ ∧<␈ελa␈↓ ∧e␈ε⊗⊃␈↓ ¬∪␈εα2␈↓ ¬3␈ελW␈↓ εq␈εα(modulo␈↓ π⎇␈ελM␈↓ λ"␈εα).␈↓ 
p␈εα(39)
␈β
W␈↓ ∧N␈εr␈↓ ¬Q␈ε¬(␈ε→␈␈↓ ¬x␈εr␈↓ ε¬␈ε¬)␈↓ ε∀␈ε¬mod␈↓ εO␈εK
␈β∞␈↓ ↓H␈εαThis␈απcongruence␈αεmeans␈απthat␈απan␈απappropriate␈απshifting␈απoperation,␈αλnamely␈απto␈αεm␈α␈ultiply
␈β4␈↓ βe␈ε¬4␈↓ βs␈εL␈↓ ∧π␈ε→␈␈↓ ∧$␈εk
␈β9␈↓ ↓H␈ε⊗␈␈↓ ↓l␈εα∂␈↓ ↓l␈ελa␈↓ β∨␈εαby␈↓ βS␈εα2␈↓ ∧9␈εαmod␈↓ ¬β␈ελM␈↓ ¬4␈εαas␈αin␈α(37),␈α|nally␈αyields␈↓ λ0␈ελW␈↓ λ[␈εα.
␈βG␈↓ ↓}␈ε¬(␈ε→␈α␈␈␈↓ α$␈εr␈↓ α1␈ε¬)␈↓ α@␈ε¬mod␈↓ α{␈εK␈↓ λN␈εr
␈βd␈↓ α␈εαAll␈α∂this␈α⊂may␈α∂seem␈α⊂lik␈α␈e␈α∂magic,␈α⊂but␈α⊂it␈α∂w␈α␈orks;␈α⊃a␈α⊂careful␈α∂study␈α⊂of␈α∂the␈α∂abo␈α␈v␈α␈e
␈β⊂␈↓ ↓H␈εαremarks␈αλwill␈απsho␈α␈w␈αλthat␈αλthe␈αλmethod␈αλis␈αλv␈α␈ery␈αλclev␈α␈er␈απbut␈αλnot␈αλa␈αλcomplete␈αλm␈α␈ystery.␈α
The
␈β6␈↓ π5␈εK␈↓ πH␈ε¬/2
␈β;␈↓ ↓H␈εαproof␈αof␈α
(39)␈α
relies␈αprimarily␈α
on␈α
the␈αfact␈α
that␈↓ π≡␈ελ|␈↓ πp␈ε⊗⊃␈α␈␈εα1␈α(modulo␈↓ 	l␈ελM␈↓ 
∩␈εα),␈αbecause
␈βf␈↓ ↓H␈εαthis␈αfact␈αcan␈αbe␈αused␈αto␈αpro␈α␈v␈α␈e␈αthat
␈β
≠␈↓ ∧,␈ε↓X
␈β
$␈↓ ¬g␈ε↓~␈↓ ¬⎇␈ελK␈↓ ε≠␈εα,␈↓ εm␈εαif␈↓ π∂␈ελs␈↓ π$␈εαmod␈↓ πn␈ελK␈↓ λ⊗␈εα=␈α
0;
␈β
8␈↓ ¬_␈εs␈↓ ¬$␈εt
␈β
>␈↓ ¬↓␈ελ|␈↓ ¬9␈εα=␈↓ 
p␈εα(40)
␈β
W␈↓ ¬⎇␈εα0,␈↓ εm␈εαif␈↓ π∂␈ελs␈↓ π$␈εαmod␈↓ πn␈ελK␈↓ λ⊗␈ε⊗≤␈εα␈α
0.
␈β
p␈↓ ∧⊂␈ε¬0␈ε→␈α↓∀␈↓ ∧<␈εt␈↓ ∧F␈ε¬<␈↓ ∧c␈εK
␈β∞≥␈↓ ε5␈εp
␈β∞"␈↓ ↓H␈εαFor␈αλwhen␈↓ αc␈ελs␈↓ αx␈εαmod␈↓ βB␈ελK␈↓ βj␈ε⊗≤␈εα␈α
0,␈α
let␈↓ ∧n␈ελs␈↓ ¬β␈εαmod␈↓ ¬M␈ελK␈↓ ¬u␈εα=␈↓ ε#␈εα2␈↓ εE␈ελq␈↓ ε]␈εαwhere␈↓ πB␈ελq␈↓ π[␈εαis␈α	odd␈α	and␈αλ0␈ε⊗␈α
∀␈↓ 	K␈ελp␈↓ 	h␈εα<␈↓ 
⊗␈ελk␈↓ 
(␈εα.␈α
Setting
␈β∞H␈↓ α+␈εk␈↓ α9␈ε→␈␈ε¬1␈ε→␈α↓␈␈↓ β↓␈εp␈↓ ∧E␈εs␈↓ ∧R␈εT␈↓ ¬5␈εq␈↓ ¬C␈εK␈↓ ¬V␈ε¬/2␈↓ πp␈εs␈↓ π⎇␈ε¬(␈↓ λε␈εt␈↓ λ⊃␈ε¬+␈↓ λ-␈εT␈↓ λB␈ε¬)␈↓ 	>␈εs␈↓ 	K␈εt
␈β∞M␈↓ ↓H␈ελT␈↓ ↓k␈εα=␈↓ α→␈εα2␈↓ β⊃␈εα,␈αw␈α␈e␈αhav␈α␈e␈↓ ∧.␈ελ|␈↓ ∧p␈ε⊗⊃␈↓ ¬≡␈ελ|␈↓ ¬|␈ε⊗⊃␈α
␈␈εα1;␈αhence␈↓ πY␈ελ|␈↓ λU␈ε⊗⊃␈α
␈␈↓ 	'␈ελ|␈↓ 	U␈εα,␈αand␈αterms␈↓ ∪␈ελT
␈β∞x␈↓ ↓H␈εαsteps␈αapart␈αin␈αthe␈αsum␈α(40)␈αcancel␈αin␈αpairs.␈αFrom␈α(40)␈αw␈α␈e␈αdeduce␈α(39)␈αas␈αfollo␈α␈ws:
␈β∂≥␈↓ β.␈ε↓X␈↓ ¬o␈ε↓X
␈β∂8␈↓ ∧6␈εα∂␈↓ ∧X␈εα∂
␈β∂:␈↓ ∧~␈εs␈↓ ∧&␈εt␈↓ εp␈εs␈↓ ε|␈εt␈↓ π$␈εt␈↓ π.␈εi␈↓ π⎇␈εt␈↓ λλ␈εj
␈β∂A␈↓ α(␈εα∂␈↓ α(␈ελa␈↓ αZ␈ε⊗⊃␈↓ ∧β␈ελ|␈↓ ∧1␈ελU␈↓ ∧T␈ελV␈↓ ¬λ␈ε⊗⊃␈↓ εY␈ελ|␈↓ π
␈ελ|␈↓ π:␈ελU␈↓ πf␈ελ|␈↓ λ∃␈ελV
␈β∂N␈↓ α:␈εs␈↓ ∧J␈εt␈↓ ∧i␈εt␈↓ πQ␈εi␈↓ λ)␈εj
␈β∂r␈↓ β∩␈ε¬0␈ε→␈α↓∀␈↓ β>␈εt␈↓ βH␈ε¬<␈↓ βe␈εK␈↓ ¬@␈ε¬0␈ε→∀␈↓ ¬k␈εt␈↓ ¬u␈ε¬,␈↓ ¬⎇␈εi␈↓ ε	␈ε¬,␈↓ ε⊃␈εj␈↓ ε≡␈ε¬<␈↓ ε;␈εK
␈β⊂ ␈↓ β9␈ε↓X␈↓ ∧}␈ε↓X␈↓ λM␈ε↓X
␈β⊂=␈↓ ¬j␈ε¬(␈↓ ¬t␈εs␈↓ ε␈ε¬+␈↓ ε≥␈εi␈↓ ε(␈ε¬+␈↓ εE␈εj␈↓ εR␈ε¬)␈↓ ε\␈εt
␈β⊂C␈↓ αd␈ε⊗⊃␈↓ ∧→␈ελU␈↓ ∧;␈ελV␈↓ ¬S␈ελ|␈↓ ε{␈ε⊗⊃␈↓ π3␈ελK␈↓ 	}␈ελU␈↓ 
!␈ελV␈↓ 
B␈εα.
␈β⊂Q␈↓ ∧0␈εi␈↓ ∧O␈εj␈↓ 
∃␈εi␈↓ 
5␈εj
␈β⊂s␈↓ λ'␈ε¬0␈ε→∀␈↓ λR␈εi␈↓ λ↑␈ε¬,␈↓ λf␈εj␈↓ λs␈ε¬<␈↓ 	⊂␈εK
␈β⊂u␈↓ β∩␈ε¬0␈ε→␈α↓∀␈↓ β>␈εi␈↓ βI␈ε¬,␈↓ βQ␈εj␈↓ β↑␈ε¬<␈↓ β{␈εK␈↓ ∧c␈ε¬0␈ε→∀␈↓ ¬∞␈εt␈↓ ¬_␈ε¬<␈↓ ¬5␈εK
␈β⊃∂␈↓ πZ␈εi␈↓ πe␈ε¬+␈↓ λα␈εj␈↓ λ∂␈ε¬+␈↓ λ,␈εs␈↓ λ8␈ε→⊃␈ε¬0␈α↓(␈α␈mo␈α↓dulo␈↓ 	T␈εK␈↓ 	l␈ε¬)
␈β∪(

␈β↓Y␈↓ ↓H␈εα290␈↓ α=␈ε∞A␈α␈RITH␈α␈METIC␈εα␈↓ 
b4.3.3
␈βα(␈↓ α␈εαThe␈αm␈α␈ultiplication␈αprocedure␈αis␈α
no␈α␈w␈αcomplete;␈αit␈α
remains␈αfor␈αus␈αto␈αspecify␈↓ ≠␈ελk
␈βαS␈↓ ↓H␈εαand␈↓ α␈ελl␈↓ α⊗␈εα,␈αand␈α
to␈αtotal␈α
up␈αthe␈α
amoun␈α␈t␈αof␈α
w␈α␈ork␈α
in␈α␈v␈α␈olv␈α␈ed.␈αLet␈↓ λ7␈ελM␈↓ λ]␈εα(␈↓ λi␈ελn␈↓ λ␈␈εα)␈α
denote␈αthe␈α
time␈α
it
␈βαy␈↓ βf␈εn␈↓ 	,␈ε→0␈↓ ⊃␈εn
␈βα}␈↓ ↓H␈εαtak␈α␈es␈απto␈αλm␈α␈ultiply␈↓ βT␈εα2␈↓ βx␈εα-bit␈απn␈α␈um␈α␈bers␈αλby␈απthe␈αλabo␈α␈v␈α␈e␈απmethod,␈α	and␈απlet␈↓ 	π␈ελM␈↓ 	4␈εα(␈↓ 	@␈ελn␈↓ 	U␈εα)␈α
=␈↓ 
→␈ελM␈↓ 
?␈εα(␈↓ 
K␈ελn␈↓ 
a␈εα)/␈↓ 
␈␈εα2␈↓ "␈εα.
␈ββ*␈↓ ↓H␈εαThe␈α
calculation␈αtime␈αin␈α␈v␈α␈olv␈α␈es␈↓ ¬≥␈ελO␈↓ ¬7␈εα(␈↓ ¬C␈ελk␈↓ ¬U␈ελN␈↓ ¬w␈εα)␈α
cy␈α␈cles␈αfor␈αthe␈α
three␈αFourier␈αtransforms␈α
and
␈ββP␈↓ ε⊂␈εk
␈ββU␈↓ ↓H␈εαthe␈αother␈αauxiliary␈αoperations,␈αplus␈↓ ¬}␈εα2␈↓ ε*␈εαm␈α␈ultiplications␈αof␈αin␈α␈tegers␈αin␈αthe␈αin␈α␈terval
␈ββ{␈↓ αε␈ε¬4␈↓ α∀␈εL
␈β∧␈↓ ↓H␈εα[0,␈↓ ↓t␈εα2␈↓ α(␈εα],␈αhence␈αw␈α␈e␈αhav␈α␈e
␈β∧M␈↓ βc␈εk␈↓ ¬⎇␈εn␈↓ π→␈ε→0␈↓ λ=␈ε→0
␈β∧S␈↓ αF␈ελM␈↓ αk␈εα(␈↓ αw␈ελn␈↓ β
␈εα)␈α
=␈↓ βQ␈εα2␈↓ βq␈ελM␈↓ ∧↔␈εα(␈↓ ∧#␈ελl␈↓ ∧5␈εα+␈αλ2)␈αλ+␈↓ ¬3␈ελO␈↓ ¬M␈εα(␈↓ ¬Y␈ελk␈↓ ¬k␈εα2␈↓ ε∂␈εα);␈↓ εs␈ελM␈↓ π ␈εα(␈↓ π,␈ελn␈↓ πB␈εα)␈α
=␈α
8␈↓ λ_␈ελM␈↓ λD␈εα(␈↓ λP␈ελl␈↓ λc␈εα+␈αλ2)␈αλ+␈↓ 	a␈ελO␈↓ 	{␈εα(␈↓ 
π␈ελk␈↓ 
_␈εα).␈↓ 
p␈εα(41)
␈β¬!␈↓ ¬M␈ε→0
␈β¬&␈↓ ↓H␈εαWe␈α∞get␈α∂the␈α∞best␈α∂reduction␈α∂of␈↓ ¬'␈ελM␈↓ ¬T␈εα(␈↓ ¬`␈ελn␈↓ ¬v␈εα)␈α∞when␈↓ εq␈ελl␈↓ π	␈εαis␈α∂chosen␈α∂to␈α∞be␈α∂as␈α∞lo␈α␈w␈α∂as␈α∞possible,
␈β¬Q␈↓ ↓H␈εαconsisten␈α␈t␈αwith␈α(34),␈αso␈αw␈α␈e␈αset
␈βε$␈↓ ∧'␈ελk␈↓ ∧C␈εα=␈ε⊗␈α
b␈↓ ∧␈␈ελn␈↓ ¬∃␈εα/2␈ε⊗c␈εα␈αλ+␈αλ2,␈↓ εe␈ελl␈↓ εy␈εα=␈ε⊗␈α
d␈↓ π5␈ελn␈↓ πK␈εα/2␈ε⊗e␈αλ␈␈εα␈αλ1.␈↓ 
p␈εα(42)
␈βεq␈↓ 	l␈ε→0
␈βεv␈↓ α␈εαUnfortunately,␈α∞when␈α∞w␈α␈e␈α∞try␈α∞to␈α∞solv␈α␈e␈α
(41)␈α∞w␈α␈e␈α∞no␈α␈w␈α∞|nd␈α∞that␈↓ 	F␈ελM␈↓ 	s␈εα(␈↓ 	␈␈ελn␈↓ 
∃␈εα)␈α∞is␈α∞of␈α
or-
␈βπ≥␈↓ α≡␈ε¬3
␈βπ"␈↓ ↓H␈εαder␈↓ αλ␈ελn␈↓ α,␈εα;␈α⊂the␈α∂recurrence␈α∞is␈α∂essen␈α␈tially␈α∂the␈α∞same␈α∂as␈α∞Eq.␈α∂(3)␈α∂near␈α∞the␈α∂beginning␈α∞of
␈βπM␈↓ ↓H␈εαthis␈αsection,␈α
but␈α
with␈α\8"␈α
replacing␈αthe␈α
coe}cien␈α␈t␈α\3".␈α∞Th␈α␈us␈α
the␈αm␈α␈ultiplication
␈βπs␈↓ 
B␈ε¬3
␈βπx␈↓ ↓H␈εαprocedure␈αw␈α␈e␈αhav␈α␈e␈αdescribed␈αhas␈αa␈αrunning␈αtime␈↓ πK␈ελM␈↓ πq␈εα(␈↓ π⎇␈ελn␈↓ λ∪␈εα)␈αof␈αorder␈↓ 	3␈ελN␈↓ 	T␈εα(␈↓ 	`␈εαlog␈↓ 
∀␈ελN␈↓ 
6␈εα)␈↓ 
P␈εα.␈αThis
␈βλ#␈↓ ↓H␈εαis␈αasymptotically␈αfaster␈α
than␈αAlgorithm␈αC,␈α
but␈αit␈α
is␈αnot␈αthe␈α
best␈αpossible␈αresult
␈βλN␈↓ ↓H␈εαobtainable␈αwith␈αthe␈αFourier␈αtransform␈αmethods␈αw␈α␈e␈αare␈αusing.
␈βλz␈↓ α␈εαLet␈αus␈α
therefore␈αlook␈α
closely␈αat␈αthe␈α
abo␈α␈v␈α␈e␈αmethod␈α
and␈αtry␈αto␈α
mak␈α␈e␈αit␈αmore
␈β	%␈↓ ↓H␈εαe}cien␈α␈t␈α(at␈αleast␈αasymptotically).␈αCareful␈αstudy␈αrev␈α␈eals␈αt␈α␈w␈α␈o␈αseparate␈αsources␈αof
␈β	K␈↓ ε∧␈ε¬4␈↓ ε∩␈εL
␈β	P␈↓ ↓H␈εαine}ciency:␈α∪(i)␈α
The␈α	modulus␈↓ ¬∀␈ελM␈↓ ¬D␈εα=␈↓ ¬r␈εα2␈↓ ε+␈εα+␈α¬1␈α	is␈α
m␈α␈uch␈α
larger␈α	than␈α
needed,␈α
since␈α	the
␈β	v␈↓ λC␈ε¬2␈↓ λQ␈εL
␈β	{␈↓ ↓H␈εαn␈α␈um␈α␈bers␈αof␈αin␈α␈terest␈αnev␈α␈er␈αget␈αsubstan␈α␈tially␈αbigger␈αthan␈↓ λ1␈εα2␈↓ λm␈εα+␈απ1.␈α_(ii)␈αHalf␈αof␈αthe
␈β
&␈↓ ↓H␈εαdata␈α
to␈α	the␈α
Fourier␈α
transforms␈α
is␈α
zero␈α
(namely␈↓ π!␈ελU␈↓ λ↓␈εα.␈αε.␈αε.␈↓ λ1␈ελU␈↓ 	α␈εαand␈↓ 	E␈ελV␈↓ 
#␈εα.␈αε.␈αε.␈↓ 
S␈ελV␈↓ ⊗␈εα).
␈β
4␈↓ π8␈εK␈↓ πP␈ε→␈␈ε¬␈α␈1␈↓ 	Y␈εK␈↓ 	q␈ε→␈␈ε¬1
␈β
5␈↓ λH␈εK␈↓ λ[␈ε¬/2␈↓ 
g␈εK␈↓ 
z␈ε¬/2
␈β
R␈↓ ↓H␈εαWe␈αshall␈αeliminate␈αeach␈αof␈αthese␈αencum␈α␈brances␈αin␈αturn.
␈βα␈↓ ¬c␈ε¬2␈↓ ¬q␈εL␈↓ λ∧␈ε¬4␈↓ λ∩␈εL
␈βπ␈↓ α␈εα(i)␈α
Suppose␈α
that␈α
w␈α␈e␈α
let␈↓ ∧s␈ελM␈↓ ¬#␈εα=␈↓ ¬Q␈εα2␈↓ ε
␈εα+␈αε1␈α
instead␈α
of␈↓ πr␈εα2␈↓ λ+␈εα+␈αε1;␈α
ho␈α␈w␈α
does␈α
this␈α
a{ect
␈β-␈↓ λ_␈ε¬4␈↓ λ&␈εL␈↓ λ:␈ε¬/␈↓ λI␈εK␈↓ 
↔␈ε¬8␈↓ 
&␈εL␈↓ 
:␈ε¬/␈↓ 
H␈εK
␈β2␈↓ ↓H␈εαthe␈απmethod?␈αIt␈απmeans␈αλthat␈απw␈α␈e␈αλshould␈αλno␈α␈w␈απchoose␈↓ π7␈ελ|␈↓ πX␈εα=␈↓ λε␈εα2␈↓ λh␈εαinstead␈αλof␈↓ 
¬␈εα2␈↓ 
`␈εα,␈αλand
␈β]␈↓ ↓H␈εα(34)␈α	m␈α␈ust␈α
no␈α␈w␈α
be␈α	changed␈α
to␈α	\␈↓ ¬∨␈ελk␈↓ ¬;␈ε⊗∀␈↓ ¬i␈ελl␈↓ ¬x␈εα+␈α¬2␈ε⊗␈α
∀␈↓ εk␈ελn␈↓ π↓␈εα"␈α	(cf.␈α
ex␈α␈ercise␈α
8).␈αMore␈α	importan␈α␈tly,
␈ββ␈↓ ε*␈ε→0␈↓ λ~␈ε→0␈↓ 	?␈ε→0
␈βλ␈↓ ↓H␈εαit␈α	also␈α
means␈α
that␈α
the␈α
recurrence␈α
for␈↓ ε¬␈ελM␈↓ ε1␈εα(␈↓ ε=␈ελn␈↓ εS␈εα)␈α
becomes␈↓ πu␈ελM␈↓ λ"␈εα(␈↓ λ.␈ελn␈↓ λC␈εα)␈α
=␈α
4␈↓ 	→␈ελM␈↓ 	F␈εα(␈↓ 	R␈ελn␈↓ 	h␈εα)␈α¬+␈↓ 
"␈ελO␈↓ 
<␈εα(␈↓ 
H␈ελk␈↓ 
Z␈εα);␈α
the
␈β/␈↓ ∧¬␈ε→0␈↓ ¬h␈ε¬2␈↓ λ#␈ε¬3
␈β4␈↓ ↓H␈εαsolution␈α
no␈α␈w␈α∞has␈↓ β←␈ελM␈↓ ∧␈εα(␈↓ ∧_␈ελn␈↓ ∧.␈εα)␈α
of␈α∞order␈↓ ¬S␈ελn␈↓ ε∧␈εαinstead␈α∞of␈α
order␈↓ λ
␈ελn␈↓ λ1␈εα.␈α⊃Ho␈α␈w␈α␈ev␈α␈er,␈α∞the␈α
modulus
␈βZ␈↓ α7␈ε¬2␈↓ αF␈εL
␈β←␈↓ ↓H␈ελM␈↓ ↓w␈εα=␈↓ α%␈εα2␈↓ αa␈εα+␈απ1␈αisn't␈αlarge␈αenough␈αto␈αdetermine␈αthe␈αcoe}cien␈α␈ts␈↓ 	⊃␈ελW␈↓ 	G␈εαexactly,␈αso␈αthe
␈βl␈↓ 	/␈εr
␈β
¬␈↓ 
t␈ε→0
␈β
␈↓ ↓H␈εαm␈α␈ultiplication␈α
procedure␈α∞is␈α
no␈α∞longer␈α∞valid;␈α∞w␈α␈e␈α∞obtain␈α
only␈α∞the␈α∞n␈α␈um␈α␈bers␈↓ 
P␈ελW␈↓ λ␈εα=
␈β
≤␈↓ 
n␈εr
␈β
0␈↓ αa␈ε¬2␈↓ αo␈εL
␈β
5␈↓ ↓H␈ελW␈↓ ↓y␈εαmod␈↓ αC␈εα(␈↓ αO␈εα2␈↓ β	␈εα+␈α¬1).␈αFortunately␈α
there␈α
is␈α
a␈α
way␈α
out,␈αas␈α
explained␈α
in␈α	ex␈α␈ercise␈α
11:␈αw␈α␈e
␈β
C␈↓ ↓f␈εr
␈β
[␈↓ ¬$␈ε→00
␈β
`␈↓ ↓H␈εαcan␈αdetermine␈αthe␈αn␈α␈um␈α␈bers␈↓ ¬␈ελW␈↓ ¬<␈εα=␈↓ ¬j␈ελW␈↓ ε≠␈εαmod␈↓ εe␈εα(␈↓ εq␈ελK␈↓ π	␈εα/2)␈αwithout␈αm␈α␈uch␈αdi}culty,␈αand␈αit
␈β
n␈↓ ελ␈εr
␈β
r␈↓ ¬≡␈εr
␈β∞π␈↓ ¬I␈ε→0␈↓ ε?␈ε→00␈↓ 
E␈ε¬2␈↓ 
S␈εL
␈β∞␈↓ ↓H␈εαis␈αλpossible␈αλto␈αλcompute␈↓ ∧ ␈ελW␈↓ ∧S␈εαfrom␈↓ ¬%␈ελW␈↓ ¬Y␈εαand␈↓ ε≠␈ελW␈↓ εU␈εαsince␈↓ π)␈ελK␈↓ πA␈εα/2␈αλis␈αλrelativ␈α␈ely␈αλprime␈α	to␈↓ 
3␈εα2␈↓ 
j␈εα+␈αα1.
␈β∞→␈↓ ∧>␈εr
␈β∞≡␈↓ ¬C␈εr␈↓ ε9␈εr
␈β∞A␈↓ α␈εα(ii)␈α∂We␈α∂can␈α∂also␈α∞change␈α∂the␈α∂basic␈α∂problem.␈α∀Instead␈α∂of␈α∂asking␈α∂for␈α∂an␈α∞algo-
␈β∞l␈↓ ↓H␈εαrithm␈α	that␈α
determines␈α
the␈α
exact␈α	product␈↓ εF␈ελu␈↓ ε\␈ελv␈↓ εo␈εα,␈α
it␈α
su}ces␈α	to␈α
hav␈α␈e␈α
an␈α
algorithm␈α	that
␈β∂∩␈↓ ∧∃␈εN
␈β∂↔␈↓ ↓H␈εαdetermines␈↓ α}␈ελu␈↓ β∀␈ελv␈↓ β-␈εαmod␈↓ βw␈εα(␈↓ ∧β␈εα2␈↓ ∧8␈εα+␈αλ1),␈αwhen␈↓ ¬w␈ελu␈↓ ε→␈εαand␈↓ ε←␈ελv␈↓ ε␈␈εαare␈↓ π;␈ελN␈↓ π]␈εα-bit␈αn␈α␈um␈α␈bers.␈α∞If␈αour␈αrecursiv␈α␈e
␈β∂B␈↓ ↓H␈εαprocedure␈α
is␈α
dev␈α␈eloped␈α
in␈α∞terms␈α
of␈α
this␈α
subproblem,␈α∞the␈α
wasteful␈α
\padding␈α
out
␈β∂n␈↓ ↓H␈εαwith␈α⊃zeros"␈α⊂needed␈α⊃to␈α⊃obtain␈α⊃an␈α⊃exact␈α⊃product␈α⊃will␈α⊃be␈α⊃performed␈α⊃only␈α⊂once,
␈β⊂→␈↓ ↓H␈εαinstead␈α∞of␈α∞at␈α∞ev␈α␈ery␈α∞lev␈α␈el␈α∂of␈α∞the␈α∞recursion.␈α∪Let␈α∞us␈α∞therefore␈α∞mak␈α␈e␈α∞the␈α∞follo␈α␈wing
␈β⊂D␈↓ ↓H␈εαchanges␈αto␈αthe␈αalgorithm:␈αEq.␈α(35)␈αbecomes
␈β⊃⊃␈↓ βq␈ε¬(␈↓ β{␈εK␈↓ ∧∞␈ε¬/2␈ε→␈α↓␈␈ε¬1)␈↓ ∧`␈εL␈↓ εD␈εL␈↓ λ`␈εN
␈β⊃∩␈↓ →␈ε→0
␈β⊃↔␈↓ ↓l␈ελu␈↓ α	␈ε⊗↓␈↓ α≠␈ελv␈↓ α8␈ε⊗⊃␈↓ αf␈ελW␈↓ β←␈εα2␈↓ ∧|␈εα+␈↓ ¬(␈ε⊗↓␈αε↓␈αε↓␈↓ ¬Z␈εα+␈↓ εε␈ελW␈↓ ε2␈εα2␈↓ ε`␈εα+␈↓ π␈ελW␈↓ πB␈εα(modulo␈↓ λN␈εα2␈↓ 	β␈εα+␈αλ1)␈↓ 
i␈εα(3␈↓ π␈εα5␈↓  ␈εα)
␈β⊃$␈↓ ε$␈ε¬1␈↓ π*␈ε¬0
␈β⊃%␈↓ β∧␈εK␈↓ β↔␈ε¬/␈α↓2␈ε→␈␈ε¬1
␈β∪(

␈β↓Y␈↓ ↓H␈εα4.3.3␈ε∞␈↓ πλHO␈α␈W␈α	F␈α|AST␈αλCAN␈α	WE␈α	MU␈α␈L␈α}TIP␈α␈L␈α}Y␈εα␈α␈?␈↓ 
v␈εα291
␈βα&␈↓ ↓H␈εαand␈αEq.␈α(36)␈αbecomes
␈βαU␈↓ ¬	␈ε↓X␈↓ π!␈ε↓X
␈βαs␈↓ →␈ε→0
␈βαx␈↓ ∧⊂␈ελW␈↓ ∧E␈εα=␈↓ ¬Y␈ελU␈↓ ¬{␈ελV␈↓ ε.␈ε⊗␈␈↓ λ↔␈ελU␈↓ λ9␈ελV␈↓ λZ␈εα.␈↓ 
i␈εα(3␈↓ π␈εα6␈↓  ␈εα)
␈ββε␈↓ ∧.␈εr␈↓ ¬p␈εi␈↓ ε∂␈εj␈↓ λ.␈εi␈↓ λM␈εj
␈ββ*␈↓ ∧s␈εi␈↓ ∧}␈ε¬+␈↓ ¬≠␈εj␈↓ ¬(␈ε¬=␈↓ ¬E␈εr␈↓ εd␈εi␈↓ εp␈ε¬+␈↓ π
␈εj␈↓ π~␈ε¬=␈↓ π7␈εK␈↓ πJ␈ε¬/2␈α↓+␈↓ λβ␈εr
␈ββh␈↓ βi␈ε¬2␈↓ βw␈εL
␈ββm␈↓ ↓H␈εαChoosing␈↓ αj␈ελM␈↓ β!␈εα=␈↓ βW␈εα2␈↓ ∧⊗␈εα+␈α1␈α⊃as␈α⊂suggested␈α⊃abo␈α␈v␈α␈e,␈α⊃w␈α␈e␈α⊃wish␈α⊂to␈α⊃compute␈↓ 
␈ελW␈↓ 
=␈εαmod␈↓ π␈ελM
␈ββz␈↓ 
)␈εr
␈β∧_␈↓ ↓H␈εαusing␈αan␈αin␈α␈teger␈αFourier␈αtransform␈αmodulo␈↓ εq␈ελM␈↓ π⊗␈εα;␈αthen␈αthe␈αtrue␈αvalue␈αof␈↓ 
∞␈ελW␈↓ 
E␈εαwill␈αbe
␈β∧%␈↓ 
,␈εr
␈β∧C␈↓ ↓H␈εαobtainable␈α
by␈αadapting␈αthe␈α
idea␈αof␈αex␈α␈ercise␈α
11␈αin␈αa␈α
straigh␈α␈tforward␈αmanner.␈αThe
␈β∧i␈↓ 
d␈ε¬4␈↓ 
r␈εL␈↓ ε␈ε¬/␈↓ ∃␈εK
␈β∧n␈↓ ↓H␈εαnew␈α	form␈α
of␈↓ β
␈ελW␈↓ β?␈εαcan␈α
be␈α	accommodated␈α
if␈α
w␈α␈e␈α	mak␈α␈e␈α
use␈α	of␈α
t␈α␈w␈α␈o␈α	n␈α␈um␈α␈bers␈↓ 
↓␈ελ{␈↓ 
$␈εα=␈↓ 
R␈εα2
␈β∧|␈↓ β(␈εr
␈β¬∀␈↓ αu␈ε¬2␈↓ βN␈ε¬8␈↓ β\␈εL␈↓ βp␈ε¬/␈↓ β␈␈εK
␈β¬~␈↓ ↓H␈εαand␈↓ α∞␈ελ|␈↓ α/␈εα=␈↓ α]␈ελ{␈↓ β∞␈εα=␈↓ β<␈εα2␈↓ ∧↔␈εα;␈α(34)␈αbecomes
␈β¬g␈↓ →␈ε→0
␈β¬l␈↓ ¬A␈ελk␈↓ ¬]␈ε⊗∀␈↓ ε␈ελl␈↓ ε≥␈εα+␈αλ2␈ε⊗␈α
∀␈↓ π∪␈ελn␈↓ π)␈εα.␈↓ 
i␈εα(3␈↓ π␈εα4␈↓  ␈εα)
␈βε5␈↓ αy␈εα∂␈↓ β0␈εα∂␈↓ ∧'␈εα∂␈↓ ε⊂␈εα∂␈↓ εC␈εα∂␈↓ π7␈εα∂
␈βε>␈↓ ↓H␈εαIf␈α∩w␈α␈e␈α∩let␈α∩(␈↓ αs␈ελU␈↓ β~␈εα,␈↓ β*␈ελU␈↓ βQ␈εα,␈↓ βa␈εα.␈αε.␈αε.␈↓ ∧⊃␈εα,␈↓ ∧!␈ελU␈↓ ¬∃␈εα)␈α∪and␈α∩(␈↓ ε␈ελV␈↓ ε/␈εα,␈↓ ε?␈ελV␈↓ εc␈εα,␈↓ εs␈εα.␈αε.␈αε.␈↓ π#␈εα,␈↓ π3␈ελV␈↓ λ#␈εα)␈α∩be␈α∩the␈α∩in␈α␈teger␈α∩Fourier
␈βεK␈↓ β␈ε¬0␈↓ βC␈ε¬1␈↓ ε!␈ε¬0␈↓ εT␈ε¬1
␈βεL␈↓ ∧:␈εK␈↓ ∧M␈ε¬/␈α↓2␈ε→␈␈ε¬1␈↓ πH␈εK␈↓ π[␈ε¬/2␈ε→␈α↓␈␈ε¬1
␈βεi␈↓ ¬¬␈εK␈↓ ¬_␈ε¬/␈α↓2␈ε→␈␈ε¬1␈↓ 	
␈εK␈↓ 	≥␈ε¬/2␈ε→␈α↓␈␈ε¬␈α␈1
␈βεn␈↓ ↓H␈εαtransforms␈απof␈αλ(␈↓ β)␈ελU␈↓ βN␈εα,␈↓ β↑␈ελ{␈↓ βw␈ελU␈↓ ∧≤␈εα,␈↓ ∧,␈εα.␈αε.␈αε.␈↓ ∧\␈εα,␈↓ ∧l␈ελ{␈↓ ¬`␈ελU␈↓ εR␈εα)␈αλand␈απ(␈↓ π3␈ελV␈↓ πV␈εα,␈↓ πf␈ελ{␈↓ π␈␈ελV␈↓ λ!␈εα,␈↓ λ1␈εα.␈αε.␈αε.␈↓ λa␈εα,␈↓ λq␈ελ{␈↓ 	e␈ελV␈↓ 
T␈εα),␈αλand
␈βε{␈↓ β@␈ε¬0␈↓ ∧∞␈ε¬1␈↓ πG␈ε¬0␈↓ λ∪␈ε¬1
␈βε|␈↓ ¬w␈εK␈↓ ε
␈ε¬/␈α↓2␈ε→␈␈ε¬1␈↓ 	y␈εK␈↓ 
␈ε¬/2␈ε→␈α↓␈␈ε¬1
␈βπ→␈↓ ↓H␈εα(␈↓ ↓T␈εα∂␈↓ ↓T␈ελa␈↓ ↓t␈εα,␈↓ α∧␈εα∂␈↓ α∧␈ελa␈↓ α$␈εα,␈↓ α4␈εα.␈αε.␈αε.␈↓ αd␈εα,␈↓ αt␈εα∂␈↓ αt␈ελa␈↓ βa␈εα)␈αthe␈αin␈α␈teger␈αFourier␈αtransform␈αof
␈βπ&␈↓ ↓f␈ε¬0␈↓ α⊗␈ε¬1
␈βπ'␈↓ βε␈εK␈↓ β→␈ε¬/␈α↓2␈ε→␈␈ε¬1
␈βπi␈↓ ∧∃␈εα∂␈↓ ∧:␈εα∂␈↓ ∧n␈εα∂␈↓ ¬⊃␈εα∂␈↓ επ␈εα∂␈↓ εy␈εα∂
␈βπr␈↓ ∧β␈εα(␈↓ ∧∂␈ελU␈↓ ∧6␈ελV␈↓ ∧Z␈εα,␈↓ ∧j␈ελV␈↓ ¬
␈ελV␈↓ ¬1␈εα,␈↓ ¬A␈εα.␈αε.␈αε.␈↓ ¬q␈εα,␈↓ ε↓␈ελU␈↓ εu␈ελV␈↓ πe␈εα)␈↓ πw␈εαmod␈↓ λA␈ελM␈↓ λg␈εα,
␈βπ␈␈↓ ∧(␈ε¬0␈↓ ∧L␈ε¬0␈↓ ∧␈␈ε¬1␈↓ ¬#␈ε¬1
␈βλ␈↓ ε~␈εK␈↓ ε-␈ε¬/2␈ε→␈α↓␈␈ε¬1␈↓ π
␈εK␈↓ π≥␈ε¬/␈α↓2␈ε→␈␈ε¬1
␈βλD␈↓ ↓H␈εαit␈αis␈αnot␈αdi}cult␈αto␈αmodify␈αour␈αprevious␈αderivation␈αto␈αobtain
␈β	⊂␈↓ ∧≥␈εk␈↓ ∧,␈ε→␈␈ε¬1␈↓ ∧p␈ε¬(␈ε→␈α␈␈␈↓ ¬⊗␈εr␈↓ ¬$␈ε¬)␈↓ ¬2␈ε¬mod␈↓ ¬m␈εK␈↓ ε␈ε¬/␈α↓2
␈β	⊃␈↓ →␈ε→0
␈β	⊗␈↓ β4␈εα∂␈↓ β4␈ελa␈↓ β]␈ε⊗⊃␈↓ ∧␈εα2␈↓ ∧W␈ελ{␈↓ ε#␈ελW␈↓ πx␈εα(modulo␈↓ 	∧␈ελM␈↓ 	*␈εα),␈↓ 
i␈εα(3␈↓ π␈εα9␈↓  ␈εα)
␈β	$␈↓ βF␈εr␈↓ εA␈ε¬(␈ε→␈␈↓ εg␈εr␈↓ εu␈ε¬)␈↓ πβ␈ε¬mo␈α↓d␈↓ π>␈εK␈↓ πR␈ε¬/2
␈β	h␈↓ ↓H␈εαbecause␈α(40)␈αno␈α␈w␈αholds␈αwith␈↓ ¬∂␈ελK␈↓ ¬9␈εαreplaced␈αby␈↓ ε{␈ελK␈↓ π∪␈εα/2.
␈β
≥␈↓ α␈εαThe␈αλnet␈α	result␈αλof␈αλall␈αλthis␈αλis␈α	that␈αλw␈α␈e␈αλobtain␈αλa␈α	method␈αλsatisfying␈αλthe␈αλrecurrences
␈β
i␈↓ αe␈εk␈↓ αs␈ε→␈␈ε¬1␈↓ ¬*␈εn␈↓ εF␈ε→0
␈β
j␈↓ →␈ε→0
␈β
p␈↓ ↓H␈ελM␈↓ ↓m␈εα(␈↓ ↓y␈ελn␈↓ α∂␈εα)␈α
=␈↓ αS␈εα2␈↓ β∨␈ελM␈↓ βD␈εα(␈↓ βP␈ελl␈↓ βb␈εα+␈αλ1)␈αλ+␈↓ ∧`␈ελO␈↓ ∧{␈εα(␈↓ ¬π␈ελk␈↓ ¬_␈εα2␈↓ ¬<␈εα),␈↓ ε ␈ελM␈↓ εM␈εα(␈↓ εY␈ελn␈↓ εo␈εα)␈α
=␈α
2␈↓ πE␈ελM␈↓ πj␈εα(␈↓ πv␈ελl␈↓ λ	␈εα+␈αλ1)␈αλ+␈↓ 	π␈ελO␈↓ 	!␈εα(␈↓ 	-␈ελk␈↓ 	?␈εα),␈↓ 
i␈εα(4␈↓ π␈εα1␈↓  ␈εα)
␈β=␈↓ 	Q␈εn
␈βB␈↓ ↓H␈εαwhere␈↓ α2␈ελM␈↓ αW␈εα(␈↓ αc␈ελn␈↓ αy␈εα)␈α∞is␈α∞the␈α
running␈α∞time␈α∞of␈α∞a␈α∞procedure␈α∞that␈α∞m␈α␈ultiplies␈↓ 	?␈εα2␈↓ 	c␈εα-bit␈α
n␈α␈um␈α␈bers
␈βd␈↓ αC␈ε
n
␈βh␈↓ α4␈ε¬2␈↓ ∧!␈ε→0␈↓ ε¬␈εn␈↓ 
≠␈ε→0
␈βm␈↓ ↓H␈εαmod␈α
(␈↓ α"␈εα2␈↓ αY␈εα+␈αε1),␈αand␈↓ β{␈ελM␈↓ ∧(␈εα(␈↓ ∧4␈ελn␈↓ ∧I␈εα)␈α
=␈↓ ¬
␈ελM␈↓ ¬3␈εα(␈↓ ¬?␈ελn␈↓ ¬U␈εα)/␈↓ ¬s␈εα2␈↓ ε↔␈εα.␈αWe␈αget␈αthe␈αbest␈αreduction␈α
of␈↓ 	u␈ελM␈↓ 
"␈εα(␈↓ 
.␈ελn␈↓ 
D␈εα)␈α
when
␈β∪␈↓ λA␈ε→0
␈β_␈↓ ↓H␈ελl␈↓ ↓↑␈εαis␈αchosen␈αto␈αbe␈αas␈αsmall␈αas␈αpossible,␈αconsisten␈α␈t␈αwith␈α(3␈↓ λ/␈εα4␈↓ λH␈εα),␈αso␈αw␈α␈e␈αset
␈βe␈↓ →␈ε→0
␈βj␈↓ ∧J␈ελk␈↓ ∧f␈εα=␈ε⊗␈α
d␈↓ ¬"␈ελn␈↓ ¬8␈εα/2␈ε⊗e␈εα␈αλ+␈αλ1,␈↓ πλ␈ελl␈↓ π≤␈εα=␈ε⊗␈α
b␈↓ πX␈ελn␈↓ πn␈εα/2␈ε⊗c␈εα.␈↓ 
i␈εα(4␈↓ π␈εα2␈↓  ␈εα)
␈β
<␈↓ α␈εαWe␈αhav␈α␈e␈αpro␈α␈v␈α␈ed␈αthat␈αthere␈αis␈αa␈αconstan␈α␈t␈↓ π∀␈ελC␈↓ π=␈εαsuch␈αthat
␈β
o␈↓ ∧O␈ε↓␈␈↓ εV␈ε↓↓
␈β∞λ␈↓ β#␈ε→0␈↓ ∧G␈ε→0
␈β∞∂␈↓ α⎇␈ελM␈↓ β*␈εα(␈↓ β6␈ελn␈↓ βL␈εα)␈ε⊗␈α
∀␈εα␈α
2␈↓ ∧"␈ελM␈↓ ∧]␈ε⊗b␈εα(␈↓ ∧w␈ελn␈↓ ¬∀␈ε⊗␈␈εα␈αλ2)/2␈ε⊗c␈εα␈αλ+␈αλ2␈↓ εl␈εα+␈↓ π_␈ελC␈↓ π6␈ελn␈↓ πK␈εα,␈↓ λ#␈εαfor␈αall␈↓ 	
␈ελn␈↓ 	-␈ε⊗∃␈εα␈α
3.
␈β∞a␈↓ ↓H␈εαIterating␈αthis␈αrelation␈α(cf.␈αex␈α␈ercise␈α1.2.4↑35)␈αyields
␈β∂∪␈↓ ∧8␈ε↓␈␈↓ εM␈ε↓↓␈↓ π,␈ε↓␈␈↓ 
β␈ε↓↓
␈β∂-␈↓ α␈␈ε→0␈↓ β}␈εj␈↓ ∧1␈ε→0␈↓ ¬l␈εj␈↓ 	∧␈εj␈↓ 	⊃␈ε¬+1
␈β∂3␈↓ αY␈ελM␈↓ βε␈εα(␈↓ β∩␈ελn␈↓ β(␈εα)␈ε⊗␈α
∀␈↓ βl␈εα2␈↓ ∧␈ελM␈↓ ∧F␈ε⊗b␈εα(␈↓ ∧`␈ελn␈↓ ∧}␈ε⊗␈␈εα␈αλ2)/␈↓ ¬Z␈εα2␈↓ ¬y␈ε⊗c␈εα␈αλ+␈αλ2␈↓ εc␈εα+␈↓ π∂␈ελC␈↓ π:␈ελj␈↓ πK␈εα(␈↓ πW␈ελn␈↓ πt␈ε⊗␈␈εα␈αλ2)␈αλ+␈↓ λr␈εα2␈↓ 	E␈ε⊗␈␈εα␈αλ2␈↓ 
⊃␈εα,
␈β⊂␈↓ λW␈ε→0
␈β⊂¬␈↓ ↓H␈εαfor␈↓ α↓␈ελj␈↓ α≥␈εα=␈α1,␈α
2,␈↓ β∨␈εα.␈αε.␈αε.␈↓ βO␈εα,␈α∞1␈αλ+␈ε⊗␈α	b␈↓ ∧<␈εαlg␈↓ ∧X␈εα(␈↓ ∧d␈ελn␈↓ ¬β␈ε⊗␈␈εα␈αλ2)␈ε⊗c␈εα;␈α∞and␈↓ ε:␈ελj␈↓ εV␈ε⊗→␈↓ πε␈εαlg␈↓ π(␈ελn␈↓ πK␈εαyields␈↓ λ2␈ελM␈↓ λ←␈εα(␈↓ λk␈ελn␈↓ 	␈εα)␈α=␈↓ 	H␈ελO␈↓ 	b␈εα(␈↓ 	n␈ελn␈↓ 

␈εαlog␈↓ 
>␈ελn␈↓ 
S␈εα).␈α∂We
␈β⊂0␈↓ ↓H␈εαhav␈α␈e␈αpro␈α␈v␈α␈ed␈αthe␈αmain␈αresult␈αof␈αthis␈αsection:
␈β⊂o␈↓ ↓H␈ε∩Theorem␈α⊂S␈εα␈α⊂(A.␈α⊂Sch␈↓ ∧␈εα∪␈↓ ∧␈εαo␈↓ ∧∩␈εαnhage,␈α⊃V.␈α⊂Strassen)␈ε∩.␈ε∂␈α It␈α⊂is␈α⊃possible␈α⊂to␈α⊂m␈α␈ultiply␈α⊂t␈α␈w␈α␈o␈↓ 
←␈ελn␈↓ 
t␈ε∂-bit
␈β⊃~␈↓ ↓H␈ε∂n␈α␈um␈α␈bers␈αin␈↓ βα␈ελO␈↓ β≤␈εα(␈↓ β(␈ελn␈↓ βC␈εαlog␈↓ βw␈ελn␈↓ ∧∪␈εαlog␈↓ ∧G␈εαlog␈↓ ∧{␈ελn␈↓ ¬⊃␈εα)␈ε∂␈αcy␈α␈cles.
␈β∪(

␈β↓Y␈↓ ↓H␈εα292␈↓ α=␈ε∞A␈α␈RITH␈α␈METIC␈εα␈↓ 
b4.3.3
␈βα(␈↓ α␈εαOur␈αform␈α␈ulation␈αof␈αthe␈αm␈α␈ultiplication␈αprocedure␈αwas␈αdesigned␈αprimarily␈αfor
␈βαS␈↓ ↓H␈εαsimplicity␈α∂of␈α⊂exposition;␈α⊃it␈α∂does␈α⊂not␈α∂turn␈α⊂out␈α∂to␈α⊂be␈α∂an␈α⊂especially␈α∂fast␈α∂method
␈βα}␈↓ ↓H␈εαfor␈α∂small␈↓ αd␈ελn␈↓ αy␈εα.␈α∃Th␈α␈us␈α∂the␈α∂algorithm␈α∂needs␈α∂to␈α∂be␈α∂re|ned␈α∂somewhat␈α∂if␈α∂it␈α∂is␈α∂ev␈α␈er␈α∂to
␈ββ*␈↓ ↓H␈εαbecome␈α	competitiv␈α␈e␈α
with␈α	Algorithm␈α	C␈α
when␈↓ ε␈␈ελn␈↓ π≡␈εαis␈α
in␈α	a␈α
practical␈α	range.␈αAs␈↓ 
1␈ελn␈↓ 
P␈ε⊗!␈α
1␈εα,
␈ββU␈↓ ↓H␈εαof␈α∞course,␈α∞fast␈α∞Fourier␈α∞m␈α␈ultiplication␈α∞becomes␈α∞vastly␈α∞superior␈α∞to␈α∞Algorithm␈α
C.
␈β∧␈↓ ↓H␈εαJohn␈α
Pollard␈αhas␈αpresen␈α␈ted␈αa␈αfast␈α
Fourier␈αm␈α␈ultiplication␈αalgorithm␈αthat␈αis␈α
useful
␈β∧+␈↓ ↓H␈εαfor␈αmoderately␈αlarge␈↓ ∧∀␈ελn␈↓ ∧)␈εα,␈αin␈ε∂␈αMath.␈αComp.␈ε∩␈α25␈εα␈α(1971),␈α365↑374.
␈β∧←␈↓ α␈εαThe␈αw␈α␈ord␈α
\cy␈α␈cles"␈αin␈αTheorem␈α
S␈αhas␈α
been␈αused␈αsomewhat␈α
loosely;␈αw␈α␈e␈αhav␈α␈e
␈β¬
␈↓ ↓H␈εαimplicitly␈α⊃been␈α⊃assuming␈α⊃a␈α⊃\con␈α␈v␈α␈en␈α␈tional␈α⊃computer"␈α⊂with␈α⊃unlimited␈α⊃random-
␈β¬5␈↓ ↓H␈εαaccess␈α∞memory,␈α⊂which␈α∞tak␈α␈es␈α∂one␈α∞unit␈α∂of␈α∂time␈α∞to␈α∂read␈α∂and␈α∞write␈α∂an␈α␈y␈α∂bit.␈α∪This
␈β¬`␈↓ ↓H␈εαassumption␈α⊂is␈α⊃quite␈α⊃unrealistic␈α⊂as␈↓ ¬u␈ελn␈↓ ε≤␈ε⊗!␈α∩1␈εα,␈α∩since␈α⊂w␈α␈e␈α⊃need␈↓ 	↓␈ελO␈↓ 	≠␈εα(␈↓ 	'␈εαlog␈↓ 	[␈ελn␈↓ 	q␈εα)␈α⊂bits␈α⊃in␈α⊂an
␈βε␈↓ ↓H␈εαinstruction␈α
or␈αan␈αindex␈αregister␈αjust␈αto␈αbe␈α
able␈αto␈αdistinguish␈αbet␈α␈w␈α␈een␈↓ 
␈ελn␈↓ 
,␈εαmemory
␈βε7␈↓ ↓H␈εαcells,␈α
so␈α	the␈α
actual␈α
time␈α	to␈α
access␈α
memory␈α	on␈α
a␈α
\con␈α␈v␈α␈en␈α␈tional␈α	computer"␈α
is␈α	really
␈βεb␈↓ ↓H␈εαproportional␈αto␈↓ βB␈εαlog␈↓ βv␈ελn␈↓ ∧␈εα.␈αWe␈αoften␈αforget␈αthis␈αdependence␈αon␈↓ λ↑␈ελn␈↓ 	␈εαbecause␈αit␈αdoes␈αnot
␈βπ
␈↓ ↓H␈εαoccur␈αon␈αreal␈αmachines␈αwith␈αbounded␈αmemory␈αand␈αbounded␈αregister␈αsize.␈αWhen
␈βπ8␈↓ ↓H␈ελn␈↓ ↓g␈εαbecomes␈α
really␈α
large␈α
the␈α
only␈α
ph␈α␈ysically␈α
appropriate␈α
model␈α
seems␈α
to␈α
be␈α
a␈α
|nite
␈βπc␈↓ ↓H␈εαmemory␈αλwith␈αλa␈αλ|nite␈αλn␈α␈um␈α␈ber␈αλof␈αλarbitrarily␈αλlong␈αλtapes.␈α
The␈αλfast␈αλFourier␈αλtransform
␈βλ∂␈↓ ↓H␈εαcan␈α∞be␈α∞arranged␈α∞to␈α∂w␈α␈ork␈α∞with␈α∞restricted␈α∞storage␈α∂access␈α∞of␈α∞this␈α∞kind,␈α∂hence␈α∞the
␈βλ:␈↓ ↓H␈ελO␈↓ ↓b␈εα(␈↓ ↓n␈ελn␈↓ α	␈εαlog␈↓ α=␈ελn␈↓ αY␈εαlog␈↓ β
␈εαlog␈↓ βA␈ελn␈↓ βW␈εα)␈αtime␈αbound␈αapplies␈αto␈αthe␈αtape␈αmodel␈αof␈αcomputers␈αas␈αw␈α␈ell␈αas
␈βλe␈↓ ↓H␈εαthe␈αrandom-access␈αmodel.
␈β	_␈↓ α␈εαThe␈αλdi{erence␈αλbet␈α␈w␈α␈een␈αλthese␈αλcomputer␈αλmodels␈αλcan␈αλbe␈αλclari|ed␈αλby␈αλconsidering
␈β	>␈↓ λD␈εm
␈β	C␈↓ ↓H␈εαanother␈α
method␈α
due␈α
to␈α
Sch␈↓ ∧n␈εα∪␈↓ ∧n␈εαo␈↓ ¬␈εαnhage␈α
and␈αStrassen:␈αIf␈↓ πd␈ελn␈↓ λ∧␈εα=␈↓ λ2␈εα2␈↓ λc␈ε⊗↓␈↓ λs␈ελm␈↓ 	∩␈εα,␈αso␈α
that␈↓ 
≥␈ελm␈↓ 
G␈ε⊗→␈↓ 
u␈εαlg␈↓ ↔␈ελn
␈β	j␈↓ α≤␈εm
␈β	o␈↓ ↓H␈εαand␈↓ α
␈εα2␈↓ α@␈ε⊗→␈↓ αn␈ελn␈↓ ββ␈εα/␈↓ β≠␈εαlg␈↓ β=␈ελn␈↓ βS␈εα,␈α	it␈αλis␈α	possible␈αλto␈αλuse␈αλthe␈αλfast␈α	Fourier␈αλtransform␈αλo␈α␈v␈α␈er␈αλthe␈αλcomplex
␈β
∃␈↓ 
4␈εm
␈β
~␈↓ ↓H␈εαn␈α␈um␈α␈bers␈αto␈αcompute␈αthe␈αproduct␈αof␈αt␈α␈w␈α␈o␈↓ εE␈ελn␈↓ ε[␈εα-bit␈αn␈α␈um␈α␈bers␈αby␈αdoing␈↓ 	C␈ελO␈↓ 	]␈εα(␈↓ 	i␈ελm␈↓ 
⊂␈ε⊗↓␈↓ 
"␈εα2␈↓ 
N␈εα)␈αm␈α␈ul-
␈β
@␈↓ 
0␈ε¬2
␈β
E␈↓ ↓H␈εαtiplications␈αof␈α6␈↓ β=␈ελm␈↓ β\␈εα-bit␈αn␈α␈um␈α␈bers.␈αEach␈αof␈αthe␈αlatter␈αcan␈αbe␈αbrok␈α␈en␈αin␈α␈to␈α1␈↓ 
≡␈εα2␈↓ 
H␈εα=␈α
144
␈β
m␈↓ βp␈ε¬1
␈β
p␈↓ ↓H␈εαm␈α␈ultiplications␈αλof␈α	(␈↓ ∧α␈ελm␈↓ ∧"␈εα)-bit␈αλn␈α␈um␈α␈bers.␈αNo␈α␈w␈αλw␈α␈e␈α	can␈αλconstruct␈α	a␈αλm␈α␈ultiplication␈αλtable
␈β↓␈↓ βp␈∧↓βpα∂
␈ββ␈↓ βp␈ε¬2
␈β⊗␈↓ π3␈ε¬(1/␈α↓2)␈↓ πr␈εm
␈β≠␈↓ ↓H␈εαcon␈α␈taining␈α∂all␈α∂products␈↓ ∧G␈ελx␈↓ ∧Y␈ελy␈↓ ∧⎇␈εαwith␈α∂0␈ε⊗␈α⊂∀␈↓ ε'␈ελx␈↓ ε:␈εα,␈↓ εJ␈ελy␈↓ εn␈εα<␈↓ π!␈εα2␈↓ λ␈εα,␈α⊃by␈α∂repeated␈α∂addition,␈α⊂in
␈βB␈↓ α<␈ε¬(1/␈α↓2)␈↓ α{␈εm␈↓ βC␈ε¬(1/␈α↓2)␈↓ ∧α␈εm␈↓ λ2␈εm
␈βG␈↓ ↓H␈ελO␈↓ ↓b␈εα(␈↓ ↓n␈ελm␈↓ α↔␈ε⊗↓␈↓ α*␈εα2␈↓ β≡␈ε⊗↓␈↓ β1␈εα2␈↓ ∧≤␈εα)␈α∞cy␈α␈cles;␈α∂then␈α∞each␈α∞of␈α∞the␈↓ π>␈ελO␈↓ πX␈εα(␈↓ πd␈ελm␈↓ λ
␈ε⊗↓␈↓ λ ␈εα2␈↓ λL␈εα)␈α∞needed␈α∞products␈α∞can
␈βr␈↓ ↓H␈εαbe␈α∂done␈α⊂by␈α⊂table␈α⊂lookup␈α⊂in␈↓ ¬∪␈ελO␈↓ ¬-␈εα(␈↓ ¬9␈ελm␈↓ ¬X␈εα)␈α⊂cy␈α␈cles.␈α_The␈α∂total␈α⊂n␈α␈um␈α␈ber␈α⊂of␈α⊂cy␈α␈cles␈α⊂for␈ε∂␈α∂this
␈β_␈↓ ¬f␈ε¬2␈↓ επ␈εm
␈β≥␈↓ ↓H␈εαprocedure␈α
therefore␈α
comes␈α
to␈↓ ¬!␈ελO␈↓ ¬;␈εα(␈↓ ¬G␈ελm␈↓ ¬u␈εα2␈↓ ε!␈εα)␈α=␈↓ εi␈ελO␈↓ πβ␈εα(␈↓ π∂␈ελn␈↓ π+␈εαlog␈↓ π←␈ελn␈↓ πt␈εα);␈α∞w␈α␈e␈α
hav␈α␈e␈α∞gotten␈α
rid␈α
of␈α
the
␈βH␈↓ ↓H␈εαfactor␈↓ α4␈εαlog␈↓ αh␈εαlog␈↓ β≤␈ελn␈↓ βB␈εαin␈α⊂Theorem␈α⊃S␈↓ ¬!␈εα.␈α→But␈α⊂the␈α⊂method␈α⊂really␈ε∂␈α⊃requires␈εα␈α⊂an␈α⊂un␈α␈bounded
␈βs␈↓ ↓H␈εαrandom-access␈α∞memory,␈α∞since␈α∂the␈α∞table␈α∞lookup␈α∞cannot␈α∞be␈α∞done␈α∞e}cien␈α␈tly␈α∞with
␈β
∨␈↓ ↓H␈εαa␈α|nite␈α
n␈α␈um␈α␈ber␈α
of␈αtapes.␈α∞(Of␈α
course,␈α
a␈α
factor␈αof␈↓ πF␈εαlog␈↓ πz␈εαlog␈↓ λ.␈ελn␈↓ λP␈εαis␈α
utterly␈α
negligible␈αin
␈β
E␈↓ ¬W␈ε¬9␈↓ εA␈ε¬18
␈β
J␈↓ ↓H␈εαpractice;␈αwhen␈↓ β7␈ελn␈↓ βX␈εαchanges␈αfrom␈α1␈↓ ¬E␈εα0␈↓ ¬q␈εαto␈α1␈↓ ε/␈εα0␈↓ ε↑␈εα,␈αthe␈αvalue␈αof␈↓ λ:␈εαlg␈↓ λ\␈εαlg␈↓ λ}␈ελn␈↓ 	∨␈εαincreases␈αby␈αonly
␈β
u␈↓ ↓H␈εαone.)
␈β∞(␈↓ α␈εαPerhaps␈↓ β↔␈ελO␈↓ β1␈εα(␈↓ β=␈ελn␈↓ βX␈εαlog␈↓ ∧␈ελn␈↓ ∧(␈εαlog␈↓ ∧\␈εαlog␈↓ ¬⊂␈ελn␈↓ ¬&␈εα)␈α∞will␈α∂turn␈α∂out␈α∞to␈α∂be␈α∂the␈α∞fastest␈α∂achievable␈α∞m␈α␈ul-
␈β∞T␈↓ ↓H␈εαtiplication␈α∞speed,␈α∂on␈α∞the␈α∞tape␈α∞model,␈α∂and␈↓ εj␈ελO␈↓ π∧␈εα(␈↓ π⊂␈ελn␈↓ π,␈εαlog␈↓ π`␈ελn␈↓ πv␈εα)␈α∞on␈α∞the␈α∞unlimited␈α∞random-
␈β∞␈␈↓ ↓H␈εαaccess␈α	model;␈α
no␈α	such␈α	result␈α	has␈α	y␈α␈et␈α	been␈α	pro␈α␈v␈α␈ed.␈αThe␈α	best␈αλlo␈α␈w␈α␈er␈α	bound␈α	kno␈α␈wn␈α	to
␈β∂*␈↓ ↓H␈εαdate␈α
is␈α	a␈α
rather␈α
deep␈α
theorem␈α
pro␈α␈v␈α␈ed␈α
by␈α
Michael␈α
S.␈α	Paterson,␈αMichael␈α
J.␈α	Fischer,
␈β∂U␈↓ ↓H␈εαand␈αAlbert␈αR.␈αMey␈α␈er␈α[␈ε∂SIAM-AMS␈αProceedings␈ε∩␈α7␈εα␈α(1974),␈α97↑111],␈αbased␈αon␈αtech-
␈β⊂␈↓ ↓H␈εαniques␈αoriginally␈αin␈α␈troduced␈αby␈αS.␈αA.␈αCook␈αand␈αS.␈αAanderaa,␈αthat␈αunder␈αcertain
␈β⊂,␈↓ ↓H␈εαrestrictions␈αthere␈αis␈αno␈αalgorithm␈αthat␈αm␈α␈ultiplies␈↓ πI␈ελn␈↓ π↑␈εα-bit␈αn␈α␈um␈α␈bers␈αwith␈αan␈αav␈α␈erage
␈β⊂W␈↓ ↓H␈εαof␈αfew␈α␈er␈αthan
␈β⊃~␈↓ ¬&␈ελO␈↓ ¬A␈εα(␈↓ ¬M␈ελn␈↓ ¬h␈εαlog␈↓ ε≤␈ελn␈↓ ε2␈εα/␈↓ εD␈εαlog␈↓ εx␈εαlog␈↓ π,␈ελn␈↓ πB␈εα)␈↓ 
p␈εα(43)
␈β∪(

␈β↓Y␈↓ ↓H␈εα4.3.3␈ε∞␈↓ πλHO␈α␈W␈α	F␈α|AST␈αλCAN␈α	WE␈α	MU␈α␈L␈α}TIP␈α␈L␈α}Y␈εα␈α␈?␈↓ 
v␈εα293
␈βα&␈↓ ↓H␈εαoperations.␈αThe␈αrestrictions␈αunder␈αwhich␈α(43)␈αis␈αa␈αlo␈α␈w␈α␈er␈αbound␈αare␈αrather␈α
sev␈α␈ere:
␈βαQ␈↓ ↓H␈εα(a)␈α∞The␈α∂(␈↓ αY␈ελk␈↓ αu␈εα+␈α
1)st␈α∂input␈α∂sym␈α␈bols␈α∞of␈α∂the␈α∂operands,␈α⊂from␈α∞righ␈α␈t␈α∂to␈α∂left,␈α⊂m␈α␈ust␈α∞not
␈βα⎇␈↓ ↓H␈εαbe␈αread␈α
by␈αthe␈α
algorithm␈αun␈α␈til␈α
after␈αthe␈↓ εK␈ελk␈↓ ε]␈εαth␈αoutput␈α
sym␈α␈bol␈αhas␈α
been␈αproduced;
␈ββ(␈↓ ↓H␈εαand␈α↔(b)␈αthe␈αin␈α␈ternal␈αtables␈αk␈α␈ept␈αby␈αthe␈αalgorithm␈αm␈α␈ust␈αhav␈α␈e␈αa␈α\uniform"␈αstruc-
␈ββS␈↓ ↓H␈εαture,␈α
in␈α
an␈α
appropriate␈α
sense.␈αThe␈α
latter␈α
restriction␈α
rules␈α
out␈α
algorithms␈α
that␈α
use
␈ββ}␈↓ ↓H␈εαgeneral␈α
List␈αstructures␈α
for␈α
their␈αin␈α␈ternal␈α
tables,␈αand␈αthe␈α
|rst␈αrestriction␈α
rules␈α
out
␈β∧)␈↓ ↓H␈εαboth␈αAlgorithm␈α
C␈αand␈αAlgorithm␈αS␈↓ ¬p␈εα.␈αIt␈αis␈αstill␈αconceivable␈α(though␈αunlik␈α␈ely)␈α
that
␈β∧U␈↓ ↓H␈εαan␈α∞algorithm␈α∂violating␈α∂(a)␈α∂or␈α∂(b)␈α∞could␈α∂m␈α␈ultiply␈↓ πU␈ελn␈↓ πk␈εα-bit␈α∞n␈α␈um␈α␈bers␈α∂in␈↓ 	q␈ελO␈↓ 
␈εα(␈↓ 
↔␈ελn␈↓ 
-␈εα)␈α∞cy␈α␈cles.
␈β¬␈↓ ↓H␈εαCon␈α␈v␈α␈ersely,␈α
M.␈α
J.␈α
Fischer␈α
and␈α
L.␈α
J.␈α
Stockmey␈α␈er␈α
hav␈α␈e␈α
sho␈α␈wn␈α
[␈ε∂J.␈αComputer␈α
and
␈β¬+␈↓ ↓H␈ε∂System␈α
Sciences␈ε∩␈α
9␈εα␈α
(1974),␈α317↑331]␈α
that␈α
m␈α␈ultiplication␈α
under␈α
restrictions␈α
(a)␈α
and
␈β¬Q␈↓ ∧w␈ε¬2
␈β¬V␈↓ ↓H␈εα(b)␈αis␈αpossible␈αin␈↓ βT␈ελO␈↓ βn␈εα(␈↓ βz␈ελn␈↓ ∧∃␈εα(␈↓ ∧!␈εαlog␈↓ ∧U␈ελn␈↓ ∧k␈εα)␈↓ ¬␈εαlog␈↓ ¬?␈εαlog␈↓ ¬s␈ελn␈↓ ε	␈εα)␈αcy␈α␈cles.
␈βε→␈↓ ↓H␈ε∩D.␈αDivision.␈εα␈α↔Using␈αa␈αfast␈αm␈α␈ultiplication␈αroutine,␈αw␈α␈e␈αcan␈αno␈α␈w␈αsho␈α␈w␈αthat␈αdivision
␈βεD␈↓ ↓H␈εαcan␈αalso␈αbe␈αaccomplished␈αin␈↓ ¬λ␈ελO␈↓ ¬"␈εα(␈↓ ¬.␈ελn␈↓ ¬I␈εαlog␈↓ ¬⎇␈ελn␈↓ ε→␈εαlog␈↓ εM␈εαlog␈↓ π↓␈ελn␈↓ π↔␈εα)␈αcy␈α␈cles.
␈βεo␈↓ α␈εαTo␈α∂divide␈α∞an␈↓ βi␈ελn␈↓ β␈␈εα-bit␈α∂n␈α␈um␈α␈ber␈↓ ¬J␈ελu␈↓ ¬n␈εαby␈α∂an␈↓ εY␈ελn␈↓ εo␈εα-bit␈α∞n␈α␈um␈α␈ber␈↓ λ:␈ελv␈↓ λL␈εα,␈α⊂w␈α␈e␈α∞may␈α∂|rst␈α∞|nd␈α∞an
␈βπ~␈↓ ↓H␈ελn␈↓ ↓]␈εα-bit␈α∂appro␈α␈ximation␈α∞to␈α∂1/␈↓ ∧j␈ελv␈↓ ∧⎇␈εα,␈α∂then␈α∞m␈α␈ultiply␈α∂by␈↓ π4␈ελu␈↓ πY␈εαto␈α∞get␈α∂an␈α∞appro␈α␈ximation␈↓ 
m␈εα∂␈↓ 
n␈ελq␈↓ ␈εαto
␈βπF␈↓ ↓H␈ελu␈↓ ↓]␈εα/␈↓ ↓o␈ελv␈↓ αα␈εα;␈α∩|nally,␈α∩w␈α␈e␈α⊂can␈α⊂mak␈α␈e␈α⊂the␈α⊂sligh␈α␈t␈α⊂correction␈α⊃necessary␈α⊂to␈↓ 	%␈εα∂␈↓ 	&␈ελq␈↓ 	F␈εαto␈α⊂ensure␈α⊂that
␈βπq␈↓ ↓H␈εα0␈ε⊗␈α∀␈↓ α⊗␈ελu␈↓ α5␈ε⊗␈␈↓ αb␈ελq␈↓ αr␈ελv␈↓ β⊃␈εα<␈↓ βB␈ελv␈↓ βb␈εαby␈α
using␈α∞another␈α
m␈α␈ultiplication.␈α⊂From␈α∞this␈α
reasoning,␈α∞w␈α␈e␈α
see
␈βλ≤␈↓ ↓H␈εαthat␈α
it␈α∞su}ces␈α∞to␈α
hav␈α␈e␈α∞an␈α
algorithm␈α∞that␈α∞appro␈α␈ximates␈α
the␈α∞reciprocal␈α∞of␈α
an␈↓ ␈ελn␈↓  ␈εα-
␈βλG␈↓ ↓H␈εαbit␈αn␈α␈um␈α␈ber,␈α
in␈↓ β8␈ελO␈↓ βR␈εα(␈↓ β↑␈ελn␈↓ βy␈εαlog␈↓ ∧-␈ελn␈↓ ∧I␈εαlog␈↓ ∧⎇␈εαlog␈↓ ¬1␈ελn␈↓ ¬G␈εα)␈αcy␈α␈cles.␈α∞The␈α
follo␈α␈wing␈αalgorithm␈α
achiev␈α␈es␈αthis,
␈βλr␈↓ ↓H␈εαusing␈α\Newton's␈αmethod"␈αas␈αexplained␈αat␈αthe␈αend␈αof␈αSection␈α4.3.1:
␈β	5␈↓ ↓H␈ε∩Algorithm␈α
R␈εα␈α
(␈ε∂High-precision␈α∞reciprocal␈↓ ε/␈εα)␈ε∩.␈εα␈α≤Let␈↓ π$␈ελv␈↓ πD␈εαhav␈α␈e␈α∞the␈α
binary␈α
represen␈α␈tation
␈β	`␈↓ ↓H␈ελv␈↓ ↓e␈εα=␈α
(0.␈↓ α;␈ελv␈↓ αY␈ελv␈↓ αw␈ελv␈↓ β≤␈εα.␈αε.␈αε.␈↓ βL␈εα)␈↓ βf␈εα,␈αwhere␈↓ ∧d␈ελv␈↓ ¬
␈εα=␈α
1.␈α
This␈αalgorithm␈αcomputes␈αan␈αappro␈α␈ximation␈↓ ≥␈ελz
␈β	m␈↓ αK␈ε¬1␈↓ αi␈ε¬2␈↓ βπ␈ε¬3␈↓ βX␈ε¬2␈↓ ∧t␈ε¬1
␈β
␈↓ ↓H␈εαto␈α1/␈↓ α_␈ελv␈↓ α*␈εα,␈αsuch␈αthat
␈β
1␈↓ π
␈ε→␈␈↓ π&␈εn
␈β
7␈↓ ¬2␈ε⊗j␈↓ ¬<␈ελz␈↓ ¬S␈ε⊗␈␈εα␈αλ1/␈↓ ε#␈ελv␈↓ ε6␈ε⊗j␈α
∀␈↓ εx␈εα2␈↓ π8␈εα.
␈β∧␈↓ ε≠␈ε¬1
␈βλ␈↓ ↓I␈ε∩R1.␈↓ α␈εα[Initial␈αappro␈α␈ximation.]␈α→Set␈↓ ¬P␈ελz␈↓ ¬i␈ε⊗ ␈↓ ε.␈ε⊗b␈εα32/(4␈↓ π⊂␈ελv␈↓ π6␈εα+␈αλ2␈↓ πt␈ελv␈↓ λ~␈εα+␈↓ λF␈ελv␈↓ λd␈εα)␈ε⊗c␈εα␈αand␈↓ 	P␈ελk␈↓ 	l␈ε⊗ ␈εα␈α
0.
␈β∃␈↓ π∨␈ε¬1␈↓ λ∧␈ε¬2␈↓ λV␈ε¬3
␈β_␈↓ ε≠␈∧_ε≠α∂
␈β~␈↓ ε≠␈ε¬4
␈β?␈↓ ↓I␈ε∩R2.␈↓ α␈εα[Newtonian␈α⊂iteration.]␈α!(At␈α⊃this␈α⊂poin␈α␈t␈α⊂w␈α␈e␈α⊃hav␈α␈e␈α⊂a␈α⊂n␈α␈um␈α␈ber␈↓ 	7␈ελz␈↓ 	V␈εαof␈α⊂the␈α⊂binary
␈βe␈↓ ¬#␈εk
␈βj␈↓ α␈εαform␈α⊂(␈↓ αr␈ελx␈↓ β¬␈ελx␈↓ β_␈εα.␈↓ β"␈ελx␈↓ β5␈ελx␈↓ βM␈εα.␈αε.␈αε.␈↓ β⎇␈ελx␈↓ ∧⊂␈εα)␈↓ ∧;␈εαwith␈↓ ¬⊃␈εα2␈↓ ¬<␈εα+␈α1␈α⊂places␈α⊂after␈α⊂the␈α⊂radix␈α⊂poin␈α␈t,␈α∩and␈↓ 
0␈ελz␈↓ 
P␈ε⊗∀␈εα␈α⊂2.)
␈βw␈↓ ∧≤␈ε¬2
␈β⊂␈↓ βC␈ε¬2
␈β∃␈↓ α␈εαCalculate␈↓ β4␈ελz␈↓ βd␈εα=␈α∪(␈↓ ∧'␈ελx␈↓ ∧:␈ελx␈↓ ∧M␈ελx␈↓ ∧`␈εα.␈↓ ∧j␈ελx␈↓ ∧|␈ελx␈↓ ¬∃␈εα.␈αε.␈αε.␈↓ ¬E␈ελx␈↓ ¬X␈εα)␈↓ ε∧␈εαexactly,␈α∪using␈α⊃a␈α∩high-speed␈α⊃m␈α␈ultiplication
␈β"␈↓ ¬d␈ε¬2
␈β;␈↓ ¬8␈ε¬2
␈β@␈↓ α␈εαroutine.␈αThen␈αcalculate␈↓ ¬α␈ελV␈↓ ¬)␈ελz␈↓ ¬Q␈εαexactly,␈αwhere␈↓ π>␈ελV␈↓ πk␈εα=␈α
(0.␈↓ λA␈ελv␈↓ λ←␈ελv␈↓ 	β␈εα.␈αε.␈αε.␈↓ 	3␈ελv␈↓ 
+␈εα)␈↓ 
E␈εα.␈αThen
␈βM␈↓ 	Q␈ε
k␈↓ 	↑␈επ+␈α␈1
␈βN␈↓ ¬⊗␈εk␈↓ πR␈εk␈↓ λP␈ε¬1␈↓ λo␈ε¬2␈↓ 
7␈ε¬2
␈βO␈↓ 	C␈ε¬2␈↓ 	␈␈ε¬+3
␈βi␈↓ πO␈ε
k␈↓ π[␈επ+1
␈βl␈↓ ∧∨␈ε¬2␈↓ π$␈ε→␈␈↓ πA␈ε¬2␈↓ π⎇␈ε→␈␈ε¬1
␈βr␈↓ α␈εαset␈↓ αF␈ελz␈↓ αa␈ε⊗ ␈εα␈α
2␈↓ β$␈ελz␈↓ β<␈ε⊗␈␈↓ βi␈ελV␈↓ ∧⊂␈ελz␈↓ ∧7␈εα+␈↓ ∧d␈ελr␈↓ ∧t␈εα,␈α∞where␈α
0␈ε⊗␈α
∀␈↓ εE␈ελr␈↓ εa␈εα<␈↓ π∩␈εα2␈↓ λ6␈εαis␈α∞added␈α
if␈α∞necessary␈α
to
␈β␈␈↓ β⎇␈εk
␈β
∀␈↓ π;␈ε
k␈↓ πH␈επ+␈α␈1
␈β
_␈↓ π⊂␈ε→␈␈↓ π-␈ε¬2␈↓ πj␈ε→␈␈ε¬␈α␈1
␈β
≥␈↓ α␈εα\round␈αup"␈↓ βL␈ελz␈↓ βg␈εαso␈αthat␈αit␈αis␈αa␈αm␈α␈ultiple␈αof␈↓ ε}␈εα2␈↓ λ∃␈εα.␈αFinally,␈αset␈↓ 	i␈ελk␈↓ 
∧␈ε⊗ ␈↓ 
2␈ελk␈↓ 
L␈εα+␈αλ1.
␈β
O␈↓ ∧P␈εk
␈β
T␈↓ ↓I␈ε∩R3.␈↓ α␈εα[Test␈α⊂for␈α⊃end.]␈α If␈↓ ∧>␈εα2␈↓ ∧o␈εα<␈↓ ¬$␈ελn␈↓ ¬:␈εα,␈α⊃go␈α⊃back␈α⊂to␈α⊂step␈α⊃R2;␈α∩otherwise␈α⊂the␈α⊂algorithm
␈β
␈␈↓ α␈εαterminates.
␈β∞∧␈↓ βd␈∧∞∧βd≠∂
␈β∞A␈↓ α␈εαThis␈α∂algorithm␈α∞is␈α∂based␈α∞on␈α∂a␈α∞method␈α∂suggested␈α∂by␈α∞S.␈α∂A.␈α∞Cook.␈α∀A␈α∞similar
␈β∞l␈↓ ↓H␈εαtechnique␈αεhas␈απbeen␈απused␈αεin␈απcomputer␈απhardware␈αε[see␈απAnderson,␈αλEarle,␈απGoldschmidt,
␈β∂_␈↓ ↓H␈εαand␈α∞Po␈α␈w␈α␈ers,␈ε∂␈α⊂IBM␈α∞J.␈α∂Res.␈α∞Dev.␈ε∩␈α∂11␈εα␈α∂(1967),␈α∂48↑52].␈α∀Of␈α∞course,␈α⊂it␈α∞is␈α∂necessary␈α∞to
␈β∂C␈↓ ↓H␈εαcheck␈α
the␈αaccuracy␈α
of␈α
Algorithm␈α
R␈α
quite␈α
carefully,␈α
because␈α
it␈α
comes␈α
v␈α␈ery␈αclose
␈β∂n␈↓ ↓H␈εαto␈αbeing␈αinaccurate.␈αWe␈αwill␈αpro␈α␈v␈α␈e␈αby␈αinduction␈αthat
␈β⊂;␈↓ λG␈ε
k
␈β⊂?␈↓ λ≤␈ε→␈␈↓ λ8␈ε¬2
␈β⊂E␈↓ ∧!␈ελz␈↓ ∧:␈ε⊗∀␈εα␈α
2␈↓ ¬B␈εαand␈↓ εD␈ε⊗j␈↓ εN␈ελz␈↓ εe␈ε⊗␈␈εα␈αλ1/␈↓ π5␈ελv␈↓ πH␈ε⊗j␈α
∀␈↓ λ
␈εα2␈↓ 
p␈εα(44)
␈β⊃≤␈↓ ↓H␈εαat␈αthe␈αbeginning␈αand␈αend␈αof␈αstep␈αR2.
␈β∪(

␈β↓Y␈↓ ↓H␈εα294␈↓ α=␈ε∞A␈α␈RITH␈α␈METIC␈εα␈↓ 
b4.3.3
␈βα&␈↓ α␈εαFor␈α∩this␈α⊃purpose,␈α∪let␈↓ ∧r␈ελ∞␈↓ ¬!␈εα=␈α∪1/␈↓ ¬|␈ελv␈↓ ε≠␈ε⊗␈␈↓ εK␈ελz␈↓ εe␈εα,␈α∪where␈↓ πp␈ελz␈↓ λ≤␈εαis␈α∩the␈α⊃value␈α∩of␈↓ 
≡␈ελz␈↓ 
?␈εαafter␈↓ ≠␈ελk
␈βα4␈↓ ∧␈␈εk␈↓ εW␈εk␈↓ π|␈εk
␈βαL␈↓ 
y␈ε→0
␈βαQ␈↓ ↓H␈εαiterations␈α
of␈α
step␈α
R2.␈α∂To␈α
start␈α
the␈α
induction␈α
on␈↓ πJ␈ελk␈↓ π\␈εα,␈α
w␈α␈e␈α
hav␈α␈e␈↓ λ␈␈ελ∞␈↓ 	&␈εα=␈α1/␈↓ 	z␈ελv␈↓ 
∃␈ε⊗␈␈εα␈α	8/␈↓ 
f␈ελv␈↓ λ␈εα+
␈βα←␈↓ 	␈ε¬0
␈βαx␈↓ α≤␈ε→0␈↓ β.␈ε→0␈↓ ε8␈ε→0␈↓ 	I␈ε→0␈↓ 
n␈ε→0
␈βα⎇␈↓ ↓H␈εα(32/␈↓ α
␈ελv␈↓ α,␈ε⊗␈␈αλb␈εα32/␈↓ β≤␈ελv␈↓ β6␈ε⊗c␈εα)/4␈↓ β␈␈εα=␈↓ ∧/␈ελ⊃␈↓ ∧X␈εα+␈↓ ¬∧␈ελ⊃␈↓ ¬%␈εα,␈α
where␈↓ ε%␈ελv␈↓ εK␈εα=␈α(␈↓ πε␈ελv␈↓ π$␈ελv␈↓ πB␈ελv␈↓ πa␈εα)␈↓ λλ␈εαand␈↓ λO␈ελ⊃␈↓ λ{␈εα=␈α(␈↓ 	6␈ελv␈↓ 	Y␈ε⊗␈␈εα␈α	8␈↓ 
_␈ελv␈↓ 
*␈εα)/␈↓ 
H␈ελv␈↓ 
[␈ελv␈↓ 
u␈εα,␈α
so
␈ββ
␈↓ ∧A␈ε¬1␈↓ ¬⊗␈ε¬2␈↓ π⊗␈ε¬1␈↓ π4␈ε¬2␈↓ πR␈ε¬3␈↓ πm␈ε¬2␈↓ λa␈ε¬1
␈ββ%␈↓ α=␈ε¬1␈↓ ¬h␈ε¬1␈↓ πe␈ε¬1
␈ββ(␈↓ ↓H␈εαthat␈ε⊗␈α␈␈↓ αY␈εα<␈↓ βπ␈ελ⊃␈↓ β2␈ε⊗∀␈εα␈α
0␈αand␈α0␈ε⊗␈α
∀␈↓ ¬␈ελ⊃␈↓ ¬6␈εα<␈↓ ¬{␈εα.␈αHence␈ε⊗␈αj␈↓ πβ␈ελ∞␈↓ π∨␈ε⊗j␈εα␈α
<␈↓ πw␈εα.␈αNo␈α␈w␈αsuppose␈αthat␈α(44)␈αhas
␈ββ5␈↓ β→␈ε¬1␈↓ ¬≡␈ε¬2␈↓ π⊂␈ε¬0
␈ββ8␈↓ α=␈∧β8α=α∂␈↓ ¬h␈∧β8¬hα∂␈↓ πe␈∧β8πeα∂
␈ββ;␈↓ α=␈ε¬2␈↓ ¬h␈ε¬4␈↓ πe␈ε¬2
␈ββS␈↓ ↓H␈εαbeen␈αv␈α␈eri|ed␈αfor␈↓ βS␈ελk␈↓ βd␈εα;␈αthen
␈β∧$␈↓ αm␈ελ∞␈↓ β>␈εα=␈α
1/␈↓ ∧⊂␈ελv␈↓ ∧+␈ε⊗␈␈↓ ∧W␈ελz␈↓ ¬&␈εα=␈α
1/␈↓ ¬x␈ελv␈↓ ε∪␈ε⊗␈␈↓ ε?␈ελz␈↓ εb␈ε⊗␈␈↓ π∞␈ελz␈↓ π(␈εα(1␈ε⊗␈αλ␈␈↓ πz␈ελz␈↓ λ∃␈ελV␈↓ λ7␈εα)␈ε⊗␈αλ␈␈↓ λw␈ελr
␈β∧1␈↓ αz␈εk␈↓ β	␈ε¬+␈α␈1␈↓ ∧c␈εk␈↓ ∧q␈ε¬+1␈↓ εK␈εk␈↓ π~␈εk␈↓ λε␈εk␈↓ λ)␈εk
␈β∧P␈↓ λ
␈ε¬2
␈β∧V␈↓ ¬&␈εα=␈↓ ¬T␈ελ∞␈↓ ¬x␈ε⊗␈␈↓ ε$␈ελz␈↓ ε>␈εα(1␈ε⊗␈αλ␈␈↓ π⊂␈ελz␈↓ π+␈ελv␈↓ π>␈εα)␈ε⊗␈αλ␈␈↓ π}␈ελz␈↓ λ≠␈εα(␈↓ λ'␈ελv␈↓ λB␈ε⊗␈␈↓ λn␈ελV␈↓ 	⊂␈εα)␈ε⊗␈αλ␈␈↓ 	P␈ελr
␈β∧d␈↓ ¬a␈εk␈↓ ε0␈εk␈↓ π≤␈εk␈↓ 	α␈εk
␈β∧h␈↓ λ
␈εk
␈β¬β␈↓ λ3␈ε¬2
␈β¬	␈↓ ¬&␈εα=␈↓ ¬T␈ελ∞␈↓ ¬x␈ε⊗␈␈εα␈αλ(1/␈↓ εT␈ελv␈↓ εo␈ε⊗␈␈↓ π≠␈ελ∞␈↓ π6␈εα)␈↓ πB␈ελv␈↓ πU␈ελ∞␈↓ πx␈ε⊗␈␈↓ λ$␈ελz␈↓ λB␈εα(␈↓ λN␈ελv␈↓ λi␈ε⊗␈␈↓ 	∃␈ελV␈↓ 	7␈εα)␈ε⊗␈αλ␈␈↓ 	w␈ελr
␈β¬⊗␈↓ ¬a␈εk␈↓ π(␈εk␈↓ πb␈εk␈↓ 	)␈εk
␈β¬≠␈↓ λ3␈εk
␈β¬5␈↓ ¬x␈ε¬2␈↓ εJ␈ε¬2
␈β¬;␈↓ ¬&␈εα=␈↓ ¬T␈ελv␈↓ ¬g␈ελ∞␈↓ ε∂␈ε⊗␈␈↓ ε;␈ελz␈↓ εX␈εα(␈↓ εd␈ελv␈↓ ε␈␈ε⊗␈␈↓ π+␈ελV␈↓ πN␈εα)␈ε⊗␈αλ␈␈↓ λ∞␈ελr␈↓ λ≥␈εα.
␈β¬H␈↓ π?␈εk
␈β¬M␈↓ ¬x␈εk␈↓ εJ␈εk
␈βε
␈↓ ↓H␈εαNo␈α␈w
␈βε.␈↓ ε{␈ε
k␈↓ λ↔␈ε
k␈↓ λ#␈επ+1
␈βε2␈↓ ¬∪␈ε¬2␈↓ ¬k␈ε¬2␈↓ εO␈ε→␈␈↓ εl␈ε¬2␈↓ π∪␈ε¬2␈↓ πl␈ε→␈␈↓ λλ␈ε¬2
␈βε8␈↓ ∧%␈εα0␈ε⊗␈α
∀␈↓ ∧o␈ελv␈↓ ¬α␈ελ∞␈↓ ¬,␈εα<␈↓ ¬Z␈ελ∞␈↓ εβ␈ε⊗∀␈εα␈α
(␈↓ ε=␈εα2␈↓ ππ␈εα)␈↓ π,␈εα=␈↓ πZ␈εα2␈↓ λE␈εα,
␈βεJ␈↓ ¬∪␈εk␈↓ ¬k␈εk
␈βε|␈↓ ↓H␈εαand
␈βπ≡␈↓ ε+␈ε
k␈↓ ε8␈επ+␈α␈1␈↓ λα␈ε
k␈↓ λ∞␈επ+1␈↓ 	P␈ε
k␈↓ 	]␈επ+␈α␈1
␈βπ!␈↓ βD␈ε¬2␈↓ ε␈ε→␈␈↓ ε≥␈ε¬2␈↓ εY␈ε→␈␈ε¬3␈↓ πW␈ε→␈␈↓ πs␈ε¬2␈↓ λ0␈ε→␈␈ε¬1␈↓ 	%␈ε→␈␈↓ 	B␈ε¬2
␈βπ(␈↓ αk␈εα0␈ε⊗␈α
∀␈↓ β5␈ελz␈↓ βS␈εα(␈↓ β←␈ελv␈↓ βz␈ε⊗␈␈↓ ∧&␈ελV␈↓ ∧H␈εα)␈αλ+␈↓ ¬λ␈ελr␈↓ ¬"␈εα<␈α
4(␈↓ ¬n␈εα2␈↓ π¬␈εα)␈αλ+␈↓ πE␈εα2␈↓ λe␈εα=␈↓ 	∪␈εα2␈↓ 	␈␈εα,
␈βπ5␈↓ ∧:␈εk
␈βπc␈↓ βR␈ε
k␈↓ β↑␈επ+1
␈βπg␈↓ β&␈ε→␈␈↓ βC␈ε¬2
␈βπl␈↓ ↓H␈εαso␈ε⊗␈α∂j␈↓ α↓␈ελ∞␈↓ αH␈ε⊗j␈α∂∀␈↓ β∀␈εα2␈↓ ∧␈εα.␈α⊗We␈α∂m␈α␈ust␈α∂still␈α∂v␈α␈erify␈α∂the␈α⊂|rst␈α∂inequality␈α∂of␈α∂(44);␈α⊃to␈α∂sho␈α␈w
␈βπy␈↓ α∞␈εk␈↓ α≤␈ε¬+1
␈βλ∀␈↓ π\␈ε¬1
␈βλ↔␈↓ ↓H␈εαthat␈↓ α_␈ελz␈↓ αl␈ε⊗∀␈εα␈α∂2,␈α∂there␈α∂are␈α∞three␈α∂cases:␈α≡(a)␈↓ εt␈ελV␈↓ π%␈εα=␈↓ πn␈εα;␈α⊂then␈↓ λ]␈ελz␈↓ 	1␈εα=␈α∞2.␈α≡(b)␈↓ 
X␈ελV␈↓ λ␈ε⊗≤
␈βλ$␈↓ α$␈εk␈↓ α3␈ε¬+1␈↓ πλ␈εk␈↓ λi␈εk␈↓ λw␈ε¬+1␈↓ 
l␈εk
␈βλ'␈↓ π\␈∧λ'π\α∂
␈βλ*␈↓ π\␈ε¬2
␈βλ?␈↓ πs␈ε
k␈↓ λ␈επ+␈α␈1
␈βλB␈↓ ¬⎇␈ε¬2␈↓ πH␈ε→␈␈↓ πe␈ε¬2␈↓ λ"␈ε→␈␈ε¬␈α␈1
␈βλD␈↓ ↓L␈ε¬1␈↓ 
;␈ε¬1
␈βλG␈↓ ↓l␈εα=␈↓ α≥␈ελV␈↓ αk␈εα;␈α∂then␈↓ βX␈ελz␈↓ ∧␈εα=␈α∞2,␈α∂so␈α∞2␈↓ ¬≥␈ελz␈↓ ¬A␈ε⊗␈␈↓ ¬n␈ελz␈↓ ε␈ελV␈↓ ε<␈ε⊗∀␈εα␈α
2␈ε⊗␈α
␈␈↓ π6␈εα2␈↓ λM␈εα.␈α≥(c)␈↓ 	*␈ελV␈↓ 
¬␈ε⊗≤␈↓ 
M␈εα;␈α∂then
␈βλU␈↓ α1␈εk␈↓ α@␈ε→␈␈ε¬␈α␈1␈↓ βd␈εk␈↓ ¬)␈εk␈↓ ε ␈εk␈↓ 	>␈εk␈↓ 	M␈ε→␈␈ε¬␈α␈1
␈βλX␈↓ ↓L␈∧λX↓Lα∂␈↓ 
;␈∧λX
;α∂
␈βλY␈↓ ¬⎇␈εk
␈βλZ␈↓ ↓L␈ε¬2␈↓ 
;␈ε¬2
␈βλo␈↓ ¬2␈ε
k␈↓ ¬?␈επ+␈α␈1
␈βλs␈↓ ¬π␈ε→␈␈↓ ¬$␈ε¬2
␈βλx␈↓ ↓H␈ελz␈↓ α↔␈εα=␈α
1/␈↓ αi␈ελv␈↓ β∧␈ε⊗␈␈↓ β0␈ελ∞␈↓ ∧↓␈εα<␈α
2␈ε⊗␈αλ␈␈↓ ∧u␈εα2␈↓ ¬j␈ε⊗∀␈εα␈α
2,␈αsince␈↓ π_␈ελk␈↓ π4␈εα>␈α
0.
␈β	¬␈↓ ↓T␈εk␈↓ ↓b␈ε¬+1␈↓ β=␈εk␈↓ βL␈ε¬+␈α␈1
␈β	#␈↓ α␈εαThe␈αrunning␈αtime␈αof␈αAlgorithm␈αR␈αis␈αbounded␈αby
␈β	v␈↓ πP␈ε¬1
␈β	y␈↓ βJ␈εα2␈↓ β\␈ελT␈↓ βu␈εα(4␈↓ ∧∪␈ελn␈↓ ∧)␈εα)␈αλ+␈αλ2␈↓ ∧{␈ελT␈↓ ¬∀␈εα(2␈↓ ¬2␈ελn␈↓ ¬H␈εα)␈αλ+␈αλ2␈↓ ε~␈ελT␈↓ ε3␈εα(␈↓ ε?␈ελn␈↓ εU␈εα)␈αλ+␈αλ2␈↓ π'␈ελT␈↓ π@␈εα(␈↓ πc␈ελn␈↓ πx␈εα)␈↓ λ∧␈ε⊗↓␈αε↓␈αε↓␈↓ λ6␈εα+␈↓ λb␈ελO␈↓ λ|␈εα(␈↓ 	λ␈ελn␈↓ 	≡␈εα)
␈β

␈↓ πP␈∧

πPα∂
␈β
␈↓ πP␈ε¬2
␈β
P␈↓ ↓H␈εαcy␈α␈cles,␈αwhere␈↓ β ␈ελT␈↓ β:␈εα(␈↓ βF␈ελn␈↓ β[␈εα)␈αis␈αan␈αupper␈αbound␈αon␈αthe␈αtime␈αneeded␈αto␈αdo␈αa␈αm␈α␈ultiplication
␈β
{␈↓ ↓H␈εαof␈↓ ↓t␈ελn␈↓ α
␈εα-bit␈α∂n␈α␈um␈α␈bers.␈α∀When␈↓ ∧↑␈ελT␈↓ ∧w␈εα(␈↓ ¬β␈ελn␈↓ ¬→␈εα)␈α∞=␈↓ ¬f␈ελC␈↓ εβ␈ελn␈↓ ε∨␈εαlog␈↓ εS␈ελn␈↓ εn␈εαlog␈↓ π"␈εαlog␈↓ πV␈ελn␈↓ πl␈εα,␈α⊂w␈α␈e␈α∞hav␈α␈e␈↓ 	∃␈ελT␈↓ 	.␈εα(4␈↓ 	L␈ελn␈↓ 	b␈εα)␈α
+␈↓ 
&␈ελT␈↓ 
?␈εα(2␈↓ 
]␈ελn␈↓ 
s␈εα)␈α	+
␈β&␈↓ ↓H␈ελT␈↓ ↓a␈εα(␈↓ ↓m␈ελn␈↓ αβ␈εα)␈απ+␈↓ αA␈ε⊗↓␈αε↓␈αε↓␈↓ αu␈εα<␈↓ β#␈ελT␈↓ β<␈εα(8␈↓ βZ␈ελn␈↓ βo␈εα),␈αso␈αdivision␈αcan␈αbe␈αdone␈αwith␈αa␈αspeed␈αcomparable␈αto␈αthat␈αof
␈βQ␈↓ ↓H␈εαm␈α␈ultiplication␈αex␈α␈cept␈αfor␈αa␈αconstan␈α␈t␈αfactor.
␈β∩␈↓ ↓H␈ε∩E.␈α	An␈α	ev␈α␈en␈α	faster␈α	m␈α␈ultiplication␈α	method.␈εα␈α∩It␈α	is␈α	natural␈αλto␈α	w␈α␈onder␈α	if␈α	m␈α␈ultiplication
␈β=␈↓ ↓H␈εαof␈↓ ↓t␈ελn␈↓ α	␈εα-bit␈α∞n␈α␈um␈α␈bers␈α∞can␈α∞actually␈α∞be␈α∞accomplished␈α∞in␈α
just␈↓ λ6␈ελn␈↓ λZ␈εαsteps.␈α∩We␈α∞hav␈α␈e␈α
come
␈βd␈↓ α1␈ε¬2␈↓ βd␈ε¬1␈α↓+␈↓ ∧∂␈ε∂
␈βi␈↓ ↓H␈εαfrom␈↓ α≠␈ελn␈↓ αI␈εαdo␈α␈wn␈α	to␈↓ βN␈ελn␈↓ ∧≠␈εα,␈α
so␈α
perhaps␈α	w␈α␈e␈α
can␈α	squeeze␈α
the␈α	time␈α	do␈α␈wn␈α
ev␈α␈en␈α	more.␈αThis
␈β
∀␈↓ ↓H␈εαis␈α
still␈α∞an␈α
unsolv␈α␈ed␈α∞problem,␈α
as␈α∞poin␈α␈ted␈α
out␈α∞abo␈α␈v␈α␈e;␈α∞but␈α∞it␈α
is␈α
in␈α␈teresting␈α∞to␈α
note
␈β
?␈↓ ↓H␈εαthat␈αit␈αis␈αactually␈αpossible␈αto␈αoutput␈αthe␈αansw␈α␈er␈αas␈αfast␈αas␈αw␈α␈e␈αinput␈αthe␈αdigits,␈αif
␈β
j␈↓ ↓H␈εαw␈α␈e␈α
leav␈α␈e␈α
the␈α
domain␈α
of␈αcon␈α␈v␈α␈en␈α␈tional␈α
computer␈α
programming␈α
and␈α
allo␈α␈w␈α
ourselv␈α␈es
␈β∞∃␈↓ ↓H␈εαto␈αεbuild␈αεa␈απcomputer␈αεthat␈απhas␈αεan␈απunlimited␈αεn␈α␈um␈α␈ber␈αεof␈απcomponen␈α␈ts␈αεall␈απacting␈αεat␈αεonce.
␈β∞A␈↓ α␈εαA␈ε∂␈αlinear␈αiterativ␈α␈e␈αarray␈εα␈αof␈αautomata␈αis␈αa␈αset␈αof␈αdevices␈↓ λl␈ελM␈↓ 	→␈εα,␈↓ 	/␈ελM␈↓ 	\␈εα,␈↓ 	r␈ελM␈↓ 
∨␈εα,␈↓ 
5␈εα.␈αε.␈αε.␈↓ 
j␈εαthat
␈β∞N␈↓ 	␈ε¬1␈↓ 	N␈ε¬2␈↓ 
⊃␈ε¬3
␈β∞l␈↓ ↓H␈εαcan␈αλeach␈αλbe␈α	in␈αλa␈α	|nite␈αλset␈αλof␈α	\states"␈αλat␈α	each␈αλstep␈αλof␈α	a␈αλcomputation.␈αThe␈αλmachines
␈β∂↔␈↓ ↓H␈ελM␈↓ ↓u␈εα,␈↓ α	␈ελM␈↓ α7␈εα,␈↓ αK␈εα.␈αε.␈αε.␈↓ α␈␈εαall␈α
hav␈α␈e␈ε∂␈αiden␈α␈tical␈εα␈α
circuitry,␈α
and␈α
their␈α
state␈α
at␈α
time␈↓ 	∀␈ελt␈↓ 	'␈εα+␈α¬1␈α
is␈α
a␈α
function
␈β∂$␈↓ ↓g␈ε¬2␈↓ α(␈ε¬3
␈β∂B␈↓ ↓H␈εαof␈αtheir␈αo␈α␈wn␈αstate␈αat␈αtime␈↓ ∧d␈ελt␈↓ ∧⎇␈εαas␈αw␈α␈ell␈αas␈αthe␈αstates␈αof␈αtheir␈αleft␈αand␈αrigh␈α␈t␈αneigh␈α␈bors
␈β∂m␈↓ ↓H␈εαat␈αtime␈↓ αG␈ελt␈↓ αT␈εα.␈α∞The␈α
|rst␈α
machine␈↓ ¬⊃␈ελM␈↓ ¬K␈εαis␈α
sligh␈α␈tly␈αdi{eren␈α␈t:␈α∞its␈α
state␈αat␈α
time␈↓ 
∃␈ελt␈↓ 
*␈εα+␈α	1␈α
is␈αa
␈β∂{␈↓ ¬0␈ε¬1
␈β⊂→␈↓ ↓H␈εαfunction␈αof␈αits␈α
o␈α␈wn␈αstate␈αand␈αthat␈αof␈↓ ε
␈ελM␈↓ ε8␈εα,␈αat␈αtime␈↓ πI␈ελt␈↓ πV␈εα,␈αand␈αalso␈αof␈αthe␈ε∂␈αinput␈εα␈αat␈α
time
␈β⊂&␈↓ ε)␈ε¬2
␈β⊂D␈↓ ↓H␈ελt␈↓ ↓U␈εα.␈αThe␈ε∂␈α
output␈εα␈α
of␈α
a␈αlinear␈α
iterativ␈α␈e␈α
array␈α
is␈α
a␈α
function␈α
de|ned␈αon␈α
the␈α
states␈α
of␈↓ 
u␈ελM␈↓ "␈εα.
␈β⊂Q␈↓ ∀␈ε¬1
␈β⊂o␈↓ α␈εαLet␈↓ αP␈ελu␈↓ αt␈εα=␈α∞(␈↓ β2␈ελu␈↓ ∧
␈εα.␈αε.␈αε.␈↓ ∧:␈ελu␈↓ ∧]␈ελu␈↓ ¬␈εα)␈↓ ¬~␈εα,␈↓ ¬3␈ελv␈↓ ¬T␈εα=␈α∞(␈↓ ε∩␈ελv␈↓ εe␈εα.␈αε.␈αε.␈↓ π∃␈ελv␈↓ π3␈ελv␈↓ πQ␈εα)␈↓ πk␈εα,␈α∂and␈↓ λM␈ελq␈↓ λk␈εα=␈α∞(␈↓ 	)␈ελq␈↓ 	y␈εα.␈αε.␈αε.␈↓ 
)␈ελq␈↓ 
D␈ελq␈↓ 
`␈εα)␈↓ λ␈εαbe
␈β⊂|␈↓ βG␈εn␈↓ βX␈ε→␈␈ε¬1␈↓ ∧N␈ε¬1␈↓ ∧q␈ε¬0␈↓ ¬␈ε¬2␈↓ ε!␈εn␈↓ ε3␈ε→␈␈ε¬1␈↓ π$␈ε¬1␈↓ πC␈ε¬0␈↓ π]␈ε¬2␈↓ 	6␈εn␈↓ 	H␈ε→␈␈ε¬␈α␈1␈↓ 
6␈ε¬1␈↓ 
Q␈ε¬0␈↓ 
l␈ε¬2
␈β⊃~␈↓ ↓H␈εαbinary␈αn␈α␈um␈α␈bers,␈αand␈αlet␈↓ ∧N␈ελu␈↓ ∧d␈ελv␈↓ ∧␈␈εα+␈↓ ¬+␈ελq␈↓ ¬F␈εα=␈↓ ¬t␈ελw␈↓ ε→␈εα=␈α
(␈↓ εS␈ελw␈↓ π=␈εα.␈αε.␈αε.␈↓ πm␈ελw␈↓ λ∪␈ελw␈↓ λ9␈εα)␈↓ λS␈εα.␈α
It␈αis␈αremarkable␈αfact
␈β⊃(␈↓ εk␈ε¬2␈↓ εy␈εn␈↓ π␈ε→␈␈ε¬1␈↓ λ∧␈ε¬1␈↓ λ+␈ε¬0␈↓ λE␈ε¬2
␈β∪(

␈β↓Y␈↓ ↓H␈εα4.3.3␈ε∞␈↓ πλHO␈α␈W␈α	F␈α|AST␈αλCAN␈α	WE␈α	MU␈α␈L␈α}TIP␈α␈L␈α}Y␈εα␈α␈?␈↓ 
v␈εα295
␈βα(␈↓ ↓H␈εαthat␈απa␈αλlinear␈αλiterativ␈α␈e␈αλarray␈αλcan␈απbe␈αλconstructed,␈α	independen␈α␈t␈αλof␈↓ 	⊃␈ελn␈↓ 	&␈εα,␈α	that␈αλwill␈απoutput
␈βαS␈↓ ↓H␈ελw␈↓ ↓n␈εα,␈↓ αβ␈ελw␈↓ α)␈εα,␈↓ α?␈ελw␈↓ αe␈εα,␈↓ αz␈εα.␈αε.␈αε.␈↓ β/␈εαat␈αtimes␈α1,␈α2,␈α3,␈↓ ¬/␈εα.␈αε.␈αε.␈↓ ¬←␈εα,␈αif␈αit␈αis␈αgiv␈α␈en␈αthe␈αinputs␈α(␈↓ λp␈ελu␈↓ 	∪␈εα,␈↓ 	#␈ελv␈↓ 	A␈εα,␈↓ 	Q␈ελq␈↓ 	m␈εα),␈α(␈↓ 
~␈ελu␈↓ 
=␈εα,␈↓ 
M␈ελv␈↓ 
k␈εα,␈↓ 
{␈ελq␈↓ ⊗␈εα),
␈βαa␈↓ ↓←␈ε¬0␈↓ α≠␈ε¬1␈↓ αV␈ε¬2␈↓ 	¬␈ε¬0␈↓ 	3␈ε¬0␈↓ 	↑␈ε¬0␈↓ 
.␈ε¬1␈↓ 
]␈ε¬1␈↓ λ␈ε¬1
␈βα}␈↓ ↓H␈εα(␈↓ ↓T␈ελu␈↓ ↓w␈εα,␈↓ απ␈ελv␈↓ α%␈εα,␈↓ α5␈ελq␈↓ αP␈εα),␈↓ αr␈εα.␈αε.␈αε.␈↓ β(␈εαat␈αtimes␈α0,␈α1,␈α2,␈↓ ¬,␈εα.␈αε.␈αε.␈↓ ¬b␈εα.
␈ββ␈↓ ↓h␈ε¬2␈↓ α⊗␈ε¬2␈↓ αB␈ε¬2
␈ββ*␈↓ α␈εαWe␈α∞can␈α∞state␈α∞this␈α∞phenomenon␈α∞in␈α∞the␈α∞language␈α∞of␈α∞computer␈α∞hardware,␈α∞by
␈ββU␈↓ ↓H␈εαsaying␈αthat␈αit␈αis␈αpossible␈αto␈αdesign␈αa␈αsingle␈α\in␈α␈tegrated␈αcircuit␈αmodule"␈αwith␈αthe
␈β∧␈↓ ↓H␈εαfollo␈α␈wing␈α∞property:␈α∩If␈α∞w␈α␈e␈α∂wire␈α∂together␈α∞su}cien␈α␈tly␈α∂man␈α␈y␈α∂of␈α∞these␈α∂devices␈α∂in␈α∞a
␈β∧+␈↓ ↓H␈εαstraigh␈α␈t␈α	line,␈α
with␈α
each␈α
module␈α	comm␈α␈unicating␈α
only␈α	with␈α
its␈α
left␈α	and␈α
righ␈α␈t␈α	neigh-
␈β∧V␈↓ ↓H␈εαbors,␈αthe␈αresulting␈αcircuitry␈αwill␈αproduce␈αthe␈α2␈↓ π≥␈ελn␈↓ π3␈εα-bit␈αproduct␈αof␈↓ 	&␈ελn␈↓ 	;␈εα-bit␈αn␈α␈um␈α␈bers␈αin
␈β¬α␈↓ ↓H␈εαexactly␈α2␈↓ αX␈ελn␈↓ αy␈εαclock␈αpulses.
␈β¬-␈↓ α␈εαHere␈α	is␈α	the␈α
basic␈α	idea␈α	behind␈α	this␈α	construction:␈αAt␈α	time␈α	0,␈α
machine␈↓ 
_␈ελM␈↓ 
N␈εαsenses
␈β¬:␈↓ 
7␈ε¬1
␈β¬X␈↓ ↓H␈εα(␈↓ ↓T␈ελu␈↓ ↓w␈εα,␈↓ απ␈ελv␈↓ α%␈εα,␈↓ α5␈ελq␈↓ αP␈εα)␈α∞and␈α∂it␈α∞therefore␈α∞is␈α∞able␈α∞to␈α∂output␈α∞(␈↓ π~␈ελu␈↓ π=␈ελv␈↓ πd␈εα+␈↓ λ∩␈ελq␈↓ λ-␈εα)␈↓ λ?␈εαmod␈↓ 		␈εα2␈α∞at␈α∂time␈α∞1.␈α∩Then
␈β¬e␈↓ ↓h␈ε¬0␈↓ α⊗␈ε¬0␈↓ αB␈ε¬0␈↓ π.␈ε¬0␈↓ πM␈ε¬0␈↓ λ∨␈ε¬0
␈βεβ␈↓ ↓H␈εαit␈α∞sees␈α∂(␈↓ αE␈ελu␈↓ αh␈εα,␈↓ αx␈ελv␈↓ β⊗␈εα,␈↓ β&␈ελq␈↓ βA␈εα)␈α∂and␈α∞it␈α∂can␈α∞output␈α∂(␈↓ ε∀␈ελu␈↓ ε7␈ελv␈↓ ε←␈εα+␈↓ π
␈ελu␈↓ π/␈ελv␈↓ πW␈εα+␈↓ λ¬␈ελq␈↓ λ*␈εα+␈↓ λX␈ελk␈↓ λv␈εα)␈↓ 	λ␈εαmod␈↓ 	R␈εα2,␈α∂where␈↓ 
h␈ελk␈↓ ∀␈εαis
␈βε⊃␈↓ αY␈ε¬1␈↓ βπ␈ε¬1␈↓ β3␈ε¬1␈↓ ε)␈ε¬0␈↓ εG␈ε¬1␈↓ π!␈ε¬1␈↓ π?␈ε¬0␈↓ λ∩␈ε¬1␈↓ λh␈ε¬1␈↓ 
x␈ε¬1
␈βε.␈↓ ↓H␈εαthe␈α
\carry"␈α∞left␈α∞o␈α␈v␈α␈er␈α∞from␈α
the␈α∞previous␈α∞step,␈α∞at␈α∞time␈α
2.␈α∩Next␈α
it␈α∞sees␈α∞(␈↓ 
$␈ελu␈↓ 
G␈εα,␈↓ 
W␈ελv␈↓ 
u␈εα,␈↓ ¬␈ελq␈↓  ␈εα)
␈βε<␈↓ 
8␈ε¬2␈↓ 
g␈ε¬2␈↓ ∩␈ε¬2
␈βεZ␈↓ ↓H␈εαand␈αoutputs␈α(␈↓ β≤␈ελu␈↓ β?␈ελv␈↓ βd␈εα+␈↓ ∧∂␈ελu␈↓ ∧2␈ελv␈↓ ∧W␈εα+␈↓ ¬↓␈ελu␈↓ ¬$␈ελv␈↓ ¬I␈εα+␈↓ ¬t␈ελq␈↓ ε⊗␈εα+␈↓ εA␈ελk␈↓ ε`␈εα)␈↓ εr␈εαmod␈↓ π<␈εα2;␈αfurthermore,␈αits␈αstate␈αrecords
␈βεg␈↓ β0␈ε¬0␈↓ βO␈ε¬2␈↓ ∧#␈ε¬1␈↓ ∧A␈ε¬1␈↓ ¬⊗␈ε¬2␈↓ ¬4␈ε¬0␈↓ ε↓␈ε¬2␈↓ εQ␈ε¬2
␈βπ¬␈↓ ↓H␈εαthe␈α∞values␈α∂of␈↓ β%␈ελu␈↓ βW␈εαand␈↓ ∧∨␈ελv␈↓ ∧L␈εαso␈α∞that␈α∂machine␈↓ ε[␈ελM␈↓ π↔␈εαwill␈α∂be␈α∞able␈α∂to␈α∞sense␈α∂these␈α∞values
␈βπ∩␈↓ β:␈ε¬2␈↓ ∧/␈ε¬2␈↓ εz␈ε¬2
␈βπ0␈↓ ↓H␈εαat␈αtime␈α
3,␈α
and␈↓ β6␈ελM␈↓ βp␈εαwill␈α
be␈αable␈α
to␈α
compute␈↓ εq␈ελu␈↓ π∀␈ελv␈↓ π?␈εαfor␈αthe␈α
bene|t␈α
of␈↓ 	W␈ελM␈↓ 
⊃␈εαat␈α
time␈α4.
␈βπ=␈↓ βU␈ε¬2␈↓ πε␈ε¬2␈↓ π$␈ε¬2␈↓ 	v␈ε¬1
␈βπ[␈↓ ↓H␈εαMachine␈↓ α[␈ελM␈↓ β↔␈εαessen␈α␈tially␈α∂arranges␈α∂to␈α∞start␈↓ εa␈ελM␈↓ π≡␈εαm␈α␈ultiplying␈α∂the␈α∞sequence␈α∂(␈↓ 
E␈ελu␈↓ 
h␈εα,␈↓ 
x␈ελv␈↓ ⊗␈εα),
␈βπi␈↓ αz␈ε¬1␈↓ π␈ε¬2␈↓ 
Z␈ε¬2␈↓ λ␈ε¬2
␈βλε␈↓ ↓H␈εα(␈↓ ↓T␈ελu␈↓ ↓w␈εα,␈↓ απ␈ελv␈↓ α%␈εα),␈↓ αD␈εα.␈αε.␈αε.␈↓ αt␈εα,␈α	and␈↓ βI␈ελM␈↓ β}␈εαwill␈α	ultimately␈αλgiv␈α␈e␈↓ ε0␈ελM␈↓ εf␈εαthe␈αλjob␈αλof␈αλm␈α␈ultiplying␈αλ(␈↓ 	I␈ελu␈↓ 	l␈εα,␈↓ 	|␈ελv␈↓ 
~␈εα),␈α	(␈↓ 
E␈ελu␈↓ 
h␈εα,␈↓ 
x␈ελv␈↓ ⊗␈εα),
␈βλ∀␈↓ ↓h␈ε¬3␈↓ α⊗␈ε¬3␈↓ βh␈ε¬2␈↓ εO␈ε¬3␈↓ 	↑␈ε¬4␈↓ 
␈ε¬4␈↓ 
Z␈ε¬5␈↓ λ␈ε¬5
␈βλ2␈↓ ↓H␈εαetc.␈αFortunately,␈α	things␈α
just␈α	w␈α␈ork␈α	out␈α	so␈α	that␈α	no␈α
time␈α	is␈α	lost.␈αThe␈α	reader␈α	will␈α	|nd
␈βλ]␈↓ ↓H␈εαit␈αin␈α␈teresting␈αto␈αdeduce␈αfurther␈αdetails␈αfrom␈αthe␈αformal␈αdescription␈αthat␈αfollo␈α␈ws.
␈β	β␈↓ ∧o␈ε¬11
␈β	λ␈↓ α␈εαEach␈αautomaton␈αhas␈↓ ∧]␈εα2␈↓ ¬_␈εαstates␈α(␈↓ ε
␈ελc␈↓ ε_␈εα,␈↓ ε(␈ελx␈↓ εG␈εα,␈↓ εW␈ελy␈↓ εv␈εα,␈↓ πε␈ελx␈↓ π%␈εα,␈↓ π5␈ελy␈↓ πU␈εα,␈↓ πe␈ελx␈↓ πx␈εα,␈↓ λλ␈ελy␈↓ λ≤␈εα,␈↓ λ,␈ελz␈↓ λF␈εα,␈↓ λV␈ελz␈↓ λp␈εα,␈↓ 	␈ελz␈↓ 	≠␈εα),␈αwhere␈α0␈ε⊗␈α∀␈↓ 
p␈ελc␈↓ λ␈εα<
␈β	∃␈↓ ε9␈ε¬0␈↓ εh␈ε¬0␈↓ π↔␈ε¬1␈↓ πF␈ε¬1␈↓ λ8␈ε¬2␈↓ λb␈ε¬1␈↓ 	␈ε¬0
␈β	3␈↓ ↓H␈εα4␈α⊂and␈α⊃each␈α⊃of␈α⊃the␈↓ β}␈ελx␈↓ ∧⊂␈εα's,␈↓ ∧D␈ελy␈↓ ∧Y␈εα's,␈α∩and␈↓ ¬W␈ελz␈↓ ¬f␈εα's␈α⊃is␈α⊃either␈α⊃0␈α⊃or␈α⊂1.␈α≠Initially,␈α∩all␈α⊃devices␈α⊂are
␈β	↑␈↓ ↓H␈εαin␈α∪state␈α∀(0,␈αε0,␈αε0,␈αε0,␈αε0,␈αε0,␈αε0,␈αε0,␈αε0,␈αε0).␈α"Suppose␈α∪that␈α∀a␈α∪machine␈↓ 	¬␈ελM␈↓ 	1␈εα,␈↓ 	P␈ελj␈↓ 	w␈εα>␈α↔1,␈α∃is␈α∪in
␈β	l␈↓ 	$␈εj
␈β

␈↓ ↓H␈εαstate␈α∩(␈↓ α2␈ελc␈↓ α@␈εα,␈↓ αP␈ελx␈↓ αo␈εα,␈↓ α␈␈ελy␈↓ β≡␈εα,␈↓ β.␈ελx␈↓ βM␈εα,␈↓ β]␈ελy␈↓ β⎇␈εα,␈↓ ∧
␈ελx␈↓ ∧ ␈εα,␈↓ ∧0␈ελy␈↓ ∧D␈εα,␈↓ ∧T␈ελz␈↓ ∧n␈εα,␈↓ ∧}␈ελz␈↓ ¬_␈εα,␈↓ ¬(␈ελz␈↓ ¬C␈εα)␈α∩at␈α∩time␈↓ εl␈ελt␈↓ εy␈εα,␈α∪and␈α∪its␈α∩left␈α∩neigh␈α␈bor␈↓ 	{␈ελM␈↓ 
d␈εαis␈α∩in
␈β
↔␈↓ αa␈ε¬0␈↓ β⊂␈ε¬0␈↓ β?␈ε¬1␈↓ βn␈ε¬1␈↓ ∧`␈ε¬2␈↓ ¬
␈ε¬1␈↓ ¬4␈ε¬0␈↓ 
~␈εj␈↓ 
'␈ε→␈␈ε¬1
␈β
0␈↓ α@␈εl␈↓ αk␈εl␈↓ β≥␈εl␈↓ βN␈εl␈↓ ∧↓␈εl␈↓ ∧2␈εl␈↓ ∧↑␈εl␈↓ ¬¬␈εl␈↓ ¬3␈εl␈↓ ¬`␈εl
␈β
5␈↓ ↓H␈εαstate␈α⊃(␈↓ α1␈ελc␈↓ αH␈εα,␈↓ αX␈ελx␈↓ αy␈εα,␈↓ β	␈ελy␈↓ β+␈εα,␈↓ β;␈ελx␈↓ β]␈εα,␈↓ βm␈ελy␈↓ ∧∂␈εα,␈↓ ∧∨␈ελx␈↓ ∧:␈εα,␈↓ ∧J␈ελy␈↓ ∧f␈εα,␈↓ ∧v␈ελz␈↓ ¬∀␈εα,␈↓ ¬$␈ελz␈↓ ¬A␈εα,␈↓ ¬Q␈ελz␈↓ ¬o␈εα)␈α⊃while␈α∩its␈α∩righ␈α␈t␈α∩neigh␈α␈bor␈↓ 	≡␈ελM␈↓ 
π␈εαis␈α∩in␈α⊃state
␈β
B␈↓ 	=␈εj␈↓ 	J␈ε¬+1
␈β
G␈↓ αk␈ε¬0␈↓ β≥␈ε¬0␈↓ βN␈ε¬1␈↓ ∧↓␈ε¬1␈↓ ¬¬␈ε¬2␈↓ ¬3␈ε¬1␈↓ ¬`␈ε¬0
␈β
[␈↓ ↓b␈εr␈↓ α∩␈εr␈↓ αD␈εr␈↓ αv␈εr␈↓ β(␈εr␈↓ βY␈εr␈↓ ∧␈εr␈↓ ∧7␈εr␈↓ ∧d␈εr␈↓ ¬∩␈εr
␈β
`␈↓ ↓H␈εα(␈↓ ↓T␈ελc␈↓ ↓o␈εα,␈↓ ↓␈␈ελx␈↓ α ␈εα,␈↓ α0␈ελy␈↓ αS␈εα,␈↓ αc␈ελx␈↓ β∧␈εα,␈↓ β∀␈ελy␈↓ β6␈εα,␈↓ βF␈ελx␈↓ βg␈εα,␈↓ βw␈ελy␈↓ ∧_␈εα,␈↓ ∧(␈ελz␈↓ ∧E␈εα,␈↓ ∧U␈ελz␈↓ ∧s␈εα,␈↓ ¬β␈ελz␈↓ ¬ ␈εα)␈αat␈α
that␈α
time.␈αThen␈α
machine␈↓ λr␈ελM␈↓ 	(␈εαwill␈αgo␈α
in␈α␈to␈α
state
␈β
m␈↓ 	⊃␈εj
␈β
r␈↓ α∩␈ε¬0␈↓ αD␈ε¬0␈↓ αv␈ε¬1␈↓ β(␈ε¬1␈↓ ∧7␈ε¬2␈↓ ∧d␈ε¬1␈↓ ¬∩␈ε¬0
␈βε␈↓ ↓b␈ε→0␈↓ α␈ε→0␈↓ α>␈ε→0␈↓ αo␈ε→0␈↓ β"␈ε→0␈↓ βS␈ε→0␈↓ β}␈ε→0␈↓ ∧%␈ε→0␈↓ ∧R␈ε→0␈↓ ∧␈␈ε→0
␈β␈↓ ↓H␈εα(␈↓ ↓T␈ελc␈↓ ↓i␈εα,␈↓ ↓y␈ελx␈↓ α~␈εα,␈↓ α*␈ελy␈↓ αM␈εα,␈↓ α]␈ελx␈↓ α}␈εα,␈↓ β∞␈ελy␈↓ β0␈εα,␈↓ β@␈ελx␈↓ βZ␈εα,␈↓ βj␈ελy␈↓ ∧ε␈εα,␈↓ ∧⊗␈ελz␈↓ ∧3␈εα,␈↓ ∧C␈ελz␈↓ ∧`␈εα,␈↓ ∧p␈ελz␈↓ ¬∞␈εα)␈αat␈αtime␈↓ ε$␈ελt␈↓ ε9␈εα+␈αλ1,␈αwhere
␈β≥␈↓ α␈ε¬0␈↓ α>␈ε¬0␈↓ αo␈ε¬1␈↓ β"␈ε¬1␈↓ ∧%␈ε¬2␈↓ ∧R␈ε¬1␈↓ ∧␈␈ε¬0
␈βN␈↓ β≤␈ε→0␈↓ ε&␈εl
␈βT␈↓ β
␈ελc␈↓ β-␈εα=␈↓ β[␈εαmin␈↓ ∧↔␈εα(␈↓ ∧#␈ελc␈↓ ∧9␈εα+␈αλ1,␈αε3)␈↓ ¬v␈εαif␈↓ ε_␈ελc␈↓ ε8␈εα=␈α
3,␈↓ πJ␈εα0␈↓ λIotherwise;
␈β↓␈↓ βJ␈ε→0␈↓ β|␈ε→0␈↓ ∧n␈εl␈↓ ¬~␈εl
␈βε␈↓ β+␈εα(␈↓ β7␈ελx␈↓ βX␈εα,␈↓ βh␈ελy␈↓ ∧␈εα)␈↓ ∧!␈εα=␈α
(␈↓ ∧[␈ελx␈↓ ∧v␈εα,␈↓ ¬ε␈ελy␈↓ ¬"␈εα)␈↓ ¬v␈εαif␈↓ ε ␈ελc␈↓ ε8␈εα=␈α
0,␈↓ πJ␈εα(␈↓ πV␈ελx␈↓ πu␈εα,␈↓ λ¬␈ελy␈↓ λ%␈εα)␈α_otherwise;
␈β∪␈↓ πg␈ε¬0␈↓ λ⊗␈ε¬0
␈β_␈↓ βJ␈ε¬0␈↓ β|␈ε¬0
␈β≥␈↓ 
p␈εα(45)
␈β3␈↓ βJ␈ε→0␈↓ β|␈ε→0␈↓ ∧n␈εl␈↓ ¬~␈εl
␈β8␈↓ β+␈εα(␈↓ β7␈ελx␈↓ βX␈εα,␈↓ βh␈ελy␈↓ ∧␈εα)␈↓ ∧!␈εα=␈α
(␈↓ ∧[␈ελx␈↓ ∧v␈εα,␈↓ ¬ε␈ελy␈↓ ¬"␈εα)␈↓ ¬v␈εαif␈↓ ε ␈ελc␈↓ ε8␈εα=␈α
1,␈↓ πJ␈εα(␈↓ πV␈ελx␈↓ πu␈εα,␈↓ λ¬␈ελy␈↓ λ%␈εα)␈α_otherwise;
␈βF␈↓ πg␈ε¬1␈↓ λ⊗␈ε¬1
␈βJ␈↓ βJ␈ε¬1␈↓ β|␈ε¬1
␈βf␈↓ βX␈ε→0␈↓ ∧∧␈ε→0␈↓ ∧n␈εl␈↓ ¬~␈εl
␈βk␈↓ β9␈εα(␈↓ βE␈ελx␈↓ β←␈εα,␈↓ βo␈ελy␈↓ ∧␈εα)␈↓ ∧!␈εα=␈α
(␈↓ ∧[␈ελx␈↓ ∧v␈εα,␈↓ ¬ε␈ελy␈↓ ¬"␈εα)␈↓ ¬v␈εαif␈↓ ε ␈ελc␈↓ ε8␈ε⊗∃␈εα␈α
2,␈↓ πJ␈εα(␈↓ πV␈ελx␈↓ πi␈εα,␈↓ πy␈ελy␈↓ λ
␈εα)␈α0otherwise;
␈β
*␈↓ αF␈ε≠0␈↓ αc␈ε≠0
␈β
.␈↓ α)␈ε→0
␈β
3␈↓ ↓H␈εαand␈α(␈↓ α~␈ελz␈↓ α7␈ελz␈↓ αT␈ελz␈↓ αr␈εα)␈↓ β_␈εαis␈αthe␈αbinary␈αnotation␈αfor
␈β
@␈↓ α}␈ε¬2
␈β
E␈↓ α)␈ε¬2␈↓ αF␈ε¬1␈↓ αc␈ε¬0
␈β
\␈↓ ¬⊂␈ε↓8
␈β
|␈↓ ¬⊂␈ε↓>
␈β∞β␈↓ ¬;␈εl␈↓ ¬W␈εl
␈β∞	␈↓ ¬(␈ελx␈↓ ¬C␈ελy␈↓ ¬←␈εα,␈↓ λM␈εαif␈↓ λo␈ελc␈↓ 	π␈εα=␈α
0;
␈β∞∩␈↓ ¬⊂␈ε↓>
␈β∞'␈↓ ¬⊂␈ε↓<
␈β∞6␈↓ ¬[␈εl␈↓ ε*␈εl
␈β∞<␈↓ ¬(␈ελx␈↓ ¬G␈ελy␈↓ ¬k␈εα+␈↓ ε↔␈ελx␈↓ ε2␈ελy␈↓ εR␈εα,␈↓ λM␈εαif␈↓ λo␈ελc␈↓ 	π␈εα=␈α
1;
␈β∞I␈↓ ¬9␈ε¬0␈↓ εC␈ε¬0
␈β∞L␈↓ β.␈εr␈↓ ∧N␈εl
␈β∞R␈↓ β∨␈ελz␈↓ βD␈εα+␈↓ βp␈ελz␈↓ ∧∪␈εα+␈↓ ∧?␈ελz␈↓ ∧d␈εα+␈↓ 
p␈εα(46)
␈β∞←␈↓ β|␈ε¬1
␈β∞d␈↓ β.␈ε¬0␈↓ ∧N␈ε¬2
␈β∞h␈↓ ¬⊂␈ε↓>␈↓ ¬[␈εl␈↓ π≥␈εl
␈β∞n␈↓ ¬(␈ελx␈↓ ¬G␈ελy␈↓ ¬k␈εα+␈↓ ε↔␈ελx␈↓ ε6␈ελy␈↓ ε↑␈εα+␈↓ π
␈ελx␈↓ π%␈ελy␈↓ πD␈εα,␈↓ λM␈εαif␈↓ λo␈ελc␈↓ 	π␈εα=␈α
2;
␈β∞|␈↓ ¬9␈ε¬0␈↓ ε(␈ε¬1␈↓ εG␈ε¬1␈↓ π6␈ε¬0
␈β∞}␈↓ ¬⊂␈ε↓>
␈β∂∪␈↓ ¬⊂␈ε↓:
␈β∂~␈↓ ¬[␈εl␈↓ πw␈εl
␈β∂!␈↓ ¬(␈ελx␈↓ ¬G␈ελy␈↓ ¬k␈εα+␈↓ ε↔␈ελx␈↓ ε6␈ελy␈↓ εR␈εα+␈↓ ε}␈ελx␈↓ π⊃␈ελy␈↓ π9␈εα+␈↓ πe␈ελx␈↓ λ␈ελy␈↓ λ∨␈εα,␈↓ λM␈εαif␈↓ λo␈ελc␈↓ 	π␈εα=␈α
3.
␈β∂.␈↓ ¬9␈ε¬0␈↓ ε(␈ε¬1␈↓ π"␈ε¬1␈↓ λ⊃␈ε¬0
␈β∂m␈↓ ↓H␈εαThe␈αleftmost␈αmachine␈↓ ∧+␈ελM␈↓ ∧d␈εαbehav␈α␈es␈αin␈αalmost␈αthe␈αsame␈αway␈αas␈αthe␈αothers;␈αit␈αacts
␈β∂{␈↓ ∧J␈ε¬1
␈β⊂→␈↓ ↓H␈εαexactly␈α	as␈α
if␈α
there␈α	w␈α␈ere␈α
a␈α	machine␈α
to␈α
its␈α	left␈α
in␈α
state␈α	(3,␈αε0,␈αε0,␈αε0,␈αε0,␈↓ 	(␈ελu␈↓ 	>␈εα,␈↓ 	N␈ελv␈↓ 	a␈εα,␈↓ 	q␈ελq␈↓ 
↓␈εα,␈αε0,␈αε0)␈α	when
␈β⊂D␈↓ ↓H␈εαit␈αεis␈αεreceiving␈απthe␈αεinputs␈αε(␈↓ ∧C␈ελu␈↓ ∧Y␈εα,␈↓ ∧i␈ελv␈↓ ∧|␈εα,␈↓ ¬␈ελq␈↓ ¬≤␈εα).␈α
The␈αεoutput␈απof␈αεthe␈απarray␈αεis␈αεthe␈↓ λ␈␈ελz␈↓ 	∨␈εαcomponen␈α␈t␈απof␈↓ 
u␈ελM␈↓ "␈εα.
␈β⊂Q␈↓ 	␈ε¬0␈↓ ∀␈ε¬1
␈β⊂o␈↓ α␈εαTable␈α⊃1␈α⊂sho␈α␈ws␈α⊃an␈α⊂example␈α⊃of␈α⊂this␈α⊃array␈α⊂acting␈α⊃on␈α⊂the␈α⊃inputs␈↓ 
π␈ελu␈↓ 
/␈εα=␈↓ 
d␈ελv␈↓ λ␈εα=
␈β⊃~␈↓ ↓H␈εα(␈↓ ↓Z␈εα.␈αε.␈αε.␈↓ α
␈εα00010111␈↓ β~␈εα)␈↓ β4␈εα,␈↓ βK␈ελq␈↓ βe␈εα=␈α(␈↓ ∧&␈εα.␈αε.␈αε.␈↓ ∧V␈εα00001011␈↓ ¬f␈εα)␈↓ ε↓␈εα.␈α
The␈αoutput␈α
sequence␈αappears␈α
in␈αthe␈αlo␈α␈w␈α␈er
␈β⊃(␈↓ β&␈ε¬2␈↓ ¬r␈ε¬2
␈β∪(

␈β↓Y␈↓ ↓H␈εα296␈↓ α=␈ε∞A␈α␈RITH␈α␈METIC␈εα␈↓ 
b4.3.3
␈βα∨␈↓ ↓H␈εα(Table␈α1␈αwill␈αgo␈αon␈αthis␈αpage,␈αit's␈αbeing␈αset␈αseparately)
␈β∪(

␈β↓Y␈↓ ↓H␈εα4.3.3␈ε∞␈↓ πλHO␈α␈W␈α	F␈α|AST␈αλCAN␈α	WE␈α	MU␈α␈L␈α}TIP␈α␈L␈α}Y␈εα␈α␈?␈↓ 
v␈εα297
␈βα(␈↓ ↓H␈εαrigh␈α␈t␈α
portion␈α
of␈α
the␈α
states␈α
of␈↓ ¬≠␈ελM␈↓ ¬H␈εα:␈α∞0,␈α
0,␈α∞1,␈α
1,␈α
1,␈α∞0,␈α
0,␈α
0,␈α
0,␈α∞1,␈α
0,␈↓ 	&␈εα.␈αε.␈αε.␈↓ 	V␈εα,␈α
represen␈α␈ting
␈βα5␈↓ ¬:␈ε¬1
␈βαS␈↓ ↓H␈εαthe␈αn␈α␈um␈α␈ber␈α(␈↓ β~␈εα.␈αε.␈αε.␈↓ βJ␈εα01000011100␈↓ ¬⊂␈εα)␈↓ ¬6␈εαfrom␈αrigh␈α␈t␈αto␈αleft.
␈βαa␈↓ ¬≤␈ε¬2
␈ββ␈↓ α␈εαThis␈αconstruction␈αis␈αbased␈αon␈αa␈αsimilar␈αone␈α|rst␈αpublished␈αby␈αA.␈α
J.␈αAtrubin,
␈ββ+␈↓ ↓H␈ε∂IEEE␈αTrans.␈ε∩␈α∂EC↑14␈εα␈α
(1965),␈α
394↑399.␈α~S.␈α
Winograd␈α
[␈ε∂JA␈α␈CM␈ε∩␈α
14␈εα␈α(1967),␈α
793↑802]
␈ββV␈↓ ↓H␈εαhas␈αin␈α␈v␈α␈estigated␈αthe␈αminim␈α␈um␈αm␈α␈ultiplication␈αtime␈αachievable␈αin␈αa␈αlogical␈αcircuit
␈β∧↓␈↓ ↓H␈εαwhen␈↓ α%␈ελn␈↓ αE␈εαis␈αgiv␈α␈en␈αand␈αwhen␈αthe␈αinputs␈αare␈αavailable␈αall␈αat␈αonce␈αin␈αcoded␈αform;␈αsee
␈β∧-␈↓ ↓H␈εαalso␈αC.␈αS.␈αWallace,␈ε∂␈αIEEE␈αTrans.␈ε∩␈αEC↑13␈εα␈α(1964),␈α14↑17.
␈β∧Y␈↓ α␈εαR.␈αP.␈αBren␈α␈t␈α
has␈αsho␈α␈wn␈αthat␈αfunctions␈α
such␈αas␈↓ πc␈εαlog␈↓ λ↔␈ελx␈↓ λ*␈εα,␈↓ λ@␈εαexp␈↓ λ}␈ελx␈↓ 	⊃␈εα,␈αand␈↓ 	m␈εαarctan␈↓ 
W␈ελx␈↓ 
v␈εαcan
␈β∧␈␈↓ π≡␈ε¬2
␈β¬∧␈↓ ↓H␈εαbe␈α
evaluated␈αto␈↓ βD␈ελn␈↓ βd␈εαsigni|can␈α␈t␈α
bits␈αin␈↓ ¬{␈ελO␈↓ ε∃␈εα(␈↓ ε!␈ελn␈↓ ε=␈εα(␈↓ εI␈εαlog␈↓ ε⎇␈ελn␈↓ π∩␈εα)␈↓ π3␈εαlog␈↓ πg␈εαlog␈↓ λ≠␈ελn␈↓ λ0␈εα)␈αsteps,␈αusing␈α
high-speed
␈β¬0␈↓ ↓H␈εαm␈α␈ultiplication␈α[␈ε∂JA␈α␈CM␈ε∩␈α23␈εα␈α(1976),␈α242↑251].
␈βεB␈↓ ↓H␈ε≥E␈α␈XERCI␈α↓SE␈α␈S
␈βπ~␈↓ ↓g␈ε∪1.␈↓ α␈εβ[␈ε	22␈↓ α;␈εβ]␈α⊗The␈α
idea␈α
ex␈α␈pre␈α␈ssed␈α
i␈α↓n␈α
(2␈α␈)␈α∞can␈α
b␈α␈e␈α∞g␈α␈ene␈α␈ralized␈α
to␈α
the␈α
dec␈α␈i␈α↓m␈α␈al␈α∞sy␈α␈stem,␈α∞if␈α∞the
␈βπB␈↓ ↓H␈εβra␈α␈dix␈αλ2␈α	is␈α	repla␈α␈ced␈α	b␈α␈y␈α	1␈α␈0.␈αUsin␈α␈g␈α	th␈α␈i␈α↓s␈α	g␈α␈en␈α␈eralization␈α␈,␈α
ca␈α␈l␈α↓c␈α␈ulate␈α	2␈α␈71␈α␈8␈α	times␈α	4␈α␈742␈αλ(redu␈α␈cing
␈βπi␈↓ ↓H␈εβth␈α␈is␈α	p␈α␈rodu␈α␈ct␈αλof␈α	fou␈α␈r-dig␈α␈i␈α↓t␈αλn␈α␈u␈α␈m␈α␈be␈α␈rs␈α	to␈αλthre␈α␈e␈α	p␈α␈rod␈α␈ucts␈αλof␈α	t␈α␈w␈α␈o␈α␈-␈α↓d␈α␈igit␈α	n␈α}um␈α␈b␈α␈ers,␈α	an␈α␈d␈αλredu␈α␈cing
␈βλ⊃␈↓ ↓H␈εβe␈α␈ach␈α
of␈αthe␈αlatt␈α␈er␈αto␈αpr␈α␈odu␈α␈cts␈αof␈αo␈α␈ne-d␈α␈i␈α↓g␈α␈it␈αn␈α}um␈α}bers).
␈βλI␈↓ ↓g␈ε∪2.␈↓ α␈εβ[␈ε	M22␈↓ αX␈εβ]␈α⊗Pro␈α␈v␈α}e␈α	tha␈α␈t,␈α
in␈α	s␈α␈tep␈α	C1␈αλof␈α	Algo␈α␈ri␈α↓th␈α␈m␈α	C␈↓ π→␈εβ,␈α	the␈α	v␈α␈alu␈α␈e␈α	of␈ε	␈α	R␈εβ␈α	eith␈α␈er␈α	stay␈α␈s␈α	the␈αλsame
␈βλm␈↓ ε'␈∧λmε'α→
␈βλo␈↓ εε␈ε↔p
␈βλp␈↓ ↓H␈εβo␈α␈r␈αi␈α↓n␈α␈crea␈α␈ses␈αb␈α␈y␈αon␈α␈e␈αwhe␈α␈n␈αw␈α␈e␈αset␈ε	␈αR␈ε↔␈α ␈αb␈↓ ε'␈ε	Q␈↓ ε?␈ε↔c␈εβ.␈α∞(There␈α␈f␈α↓o␈α␈re,␈αas␈αob␈α␈serv␈α␈e␈α␈d␈αin␈αth␈α␈at␈αste␈α␈p,␈α
w␈α␈e
␈β	_␈↓ ↓H␈εβn␈α␈eed␈α
no␈α␈t␈αc␈α␈alcula␈α␈te␈αa␈αsqu␈α␈are␈αro␈α␈ot.)
␈β	P␈↓ ↓g␈ε∪3.␈↓ α␈εβ[␈ε	M23␈↓ αX␈εβ]␈α⊗Pro␈α␈v␈α}e␈α	t␈α␈hat␈αλth␈α␈e␈αλsequ␈α␈enc␈α␈es␈↓ ¬`␈ε	q␈↓ ¬y␈εβ,␈↓ ε␈ε	r␈↓ ε,␈εβde|␈α␈ne␈α␈d␈αλi␈α↓n␈απAl␈α↓g␈α␈orithm␈αλC␈αλsa␈α␈ti␈α↓sfy␈αλth␈α␈e␈αλineq␈α␈ua␈α␈l␈α↓ity
␈β	[␈↓ ¬l␈εk␈↓ ε↔␈εk
␈β	t␈↓ ↓X␈εq␈↓ ↓o␈εε+1␈↓ αU␈εr␈↓ β0␈εq␈↓ βi␈εε+␈↓ ∧α␈εq
␈β	x␈↓ ↓H␈εβ2␈↓ α∃␈εβ(2␈↓ α1␈ε	r␈↓ αJ␈εβ)␈↓ αu␈ε↔∀␈↓ β ␈εβ2␈↓ ∧→␈εβ,␈αwhen␈↓ ¬∧␈ε	k␈↓ ¬≡␈εβ>␈α	0.
␈β	{␈↓ ↓c␈ε
k␈↓ α←␈ε
k␈↓ β;␈ε
k␈↓ βG␈ε≠␈␈επ1␈↓ ∧␈ε
k
␈β
α␈↓ α=␈εk
␈β
,␈↓ ↓;␈ε↓x
␈β
0␈↓ ↓g␈ε∪4.␈↓ α␈εβ[␈ε	28␈↓ α;␈εβ]␈α⊗(K.␈α	Bak␈α␈e␈α␈r.␈α↓)␈α∪S␈α␈ho␈α}w␈α	tha␈α␈t␈α	it␈α	is␈α	ad␈α␈va␈α␈n␈α␈ta␈α␈geo␈α␈us␈α	to␈αλev␈α␈alua␈α␈te␈α	th␈α␈e␈α	p␈α␈olyn␈α␈omia␈α␈l␈↓ 
=␈ε	W␈↓ 
←␈εβ(␈↓ 
j␈ε	x␈↓ 
{␈εβ)␈α	a␈α␈t
␈β
W␈↓ ↓H␈εβth␈α␈e␈απpo␈α␈i␈α↓n␈α}ts␈↓ α]␈ε	x␈↓ αw␈εβ=␈ε↔␈α
␈␈↓ βC␈ε	r␈↓ βR␈εβ,␈↓ βc␈εβ.␈αε.␈αε.␈↓ ∧∂␈εβ,␈α	0␈α␈,␈↓ ∧C␈εβ.␈αε.␈α¬.␈↓ ∧o␈εβ,␈↓ ¬↓␈ε	r␈↓ ¬↔␈εβin␈α␈stead␈απo␈α␈f␈αλa␈α␈t␈αλth␈α␈e␈απpoin␈α}ts␈↓ πc␈ε	x␈↓ π⎇␈εβ=␈α
0␈α␈,␈α	1␈α␈,␈↓ λl␈εβ.␈αε.␈α¬.␈↓ 	_␈εβ,␈α	2␈↓ 	:␈ε	r␈↓ 	P␈εβas␈απi␈α↓n␈αεAl␈α↓g␈α␈orithm
␈β
{␈↓ πY␈εε2␈↓ λr␈εε2
␈β
␈␈↓ ↓H␈εβC␈↓ ↓b␈εβ.␈α⊂Th␈α␈e␈α
p␈α␈olyn␈α␈omial␈↓ βo␈ε	U␈↓ ∧
␈εβ(␈↓ ∧∃␈ε	x␈↓ ∧&␈εβ)␈α
ca␈α␈n␈α
b␈α␈e␈α
written␈↓ ε!␈ε	U␈↓ ε<␈εβ(␈↓ εG␈ε	x␈↓ εY␈εβ)␈α=␈↓ π≥␈ε	U␈↓ π=␈εβ(␈↓ πH␈ε	x␈↓ πf␈εβ)␈α	+␈↓ λ#␈ε	x␈↓ λ5␈ε	U␈↓ λV␈εβ(␈↓ λa␈ε	x␈↓ λ␈␈εβ),␈α
an␈α␈d␈α
s␈α␈i␈α↓m␈α␈i␈α↓larly␈↓ 
m␈ε	V␈↓ ¬␈εβ(␈↓ ⊂␈ε	x␈↓ !␈εβ)
␈β	␈↓ π2␈εe␈↓ λJ␈εo
␈β&␈↓ ↓H␈εβa␈α␈nd␈↓ αλ␈ε	W␈↓ α)␈εβ(␈↓ α4␈ε	x␈↓ αE␈εβ)␈αc␈α␈an␈α
b␈α␈e␈α
exp␈α␈an␈α␈ded␈α
in␈α
th␈α␈is␈αwa␈α␈y;␈αsh␈α␈o␈α␈w␈α
ho␈α}w␈αto␈α
e␈α␈xp␈α␈l␈α↓o␈α␈i␈α↓t␈α
th␈α␈i␈α↓s␈α
ide␈α␈a,␈αo␈α␈btain␈α␈i␈α↓n␈α␈g␈α
faste␈α␈r
␈βN␈↓ ↓H␈εβc␈α␈alculat␈α␈i␈α↓o␈α␈ns␈αin␈αste␈α␈ps␈αC7␈αa␈α␈nd␈α
C8.
␈βα␈↓ ↓;␈ε↓x
␈ββ␈↓ 	␈∧β	α)
␈β∧␈↓ λj␈ε↔p
␈βε␈↓ ↓g␈ε∪5.␈↓ α␈εβ[␈ε	35␈↓ α;␈εβ]␈α⊗Sh␈α␈o␈α␈w␈α∞tha␈α␈t␈α∂if␈α∂in␈α∞step␈α∞C1␈α∞Algo␈α␈ri␈α↓t␈α␈hm␈α∞C␈α∂w␈α␈e␈α∞set␈ε	␈α∞R␈ε↔␈α∂ ␈α∂d␈↓ 	␈εβ2␈↓ 	≤␈ε	Q␈↓ 	:␈ε↔e␈εβ␈α
+␈α	1␈α∂in␈α␈stead␈α∞o␈α␈f
␈β+␈↓ αC␈∧+αCα→
␈β,␈↓ α!␈ε↔p
␈β.␈↓ ↓H␈ε	R␈ε↔␈α
 ␈α
b␈↓ αC␈ε	Q␈↓ α[␈ε↔c␈εβ,␈αwith␈αsu␈α␈i␈α↓ta␈α␈ble␈αi␈α↓n␈α␈iti␈α↓a␈α␈l␈αva␈α␈l␈α↓u␈α␈es␈αof␈↓ ε4␈ε	q␈↓ εL␈εβ,␈↓ εa␈ε	q␈↓ εz␈εβ,␈↓ π∂␈ε	r␈↓ π(␈εβ,␈αa␈α␈nd␈↓ π}␈ε	r␈↓ λ⊗␈εβ,␈αthen␈α(19␈α␈)␈αca␈α␈n␈αbe␈αi␈α↓m␈α␈pro␈α␈v␈α}ed
␈β8␈↓ ε@␈εε0␈↓ εm␈εε1␈↓ π≠␈εε0␈↓ λ
␈εε1
␈βS␈↓ β,␈∧Sβ,αb
␈βU␈↓ β␈ε↔p
␈βY␈↓ β,␈εε2␈↓ β=␈εεlg␈↓ βU␈εq
␈β`␈↓ ↓H␈εβto␈↓ ↓p␈ε	t␈↓ α⊃␈ε↔∀␈↓ α;␈ε	q␈↓ αz␈εβ2␈↓ β←␈ε
k␈↓ βl␈επ+␈α␈1␈↓ ∧∪␈εβ(␈↓ ∧≡␈εβlg␈↓ ∧>␈ε	q␈↓ ∧⎇␈εβ).
␈βk␈↓ ↓z␈εk␈↓ αG␈εk␈↓ αU␈εε+1␈↓ ∧J␈εk␈↓ ∧W␈εε+1
␈β
_␈↓ ↓g␈ε∪6.␈↓ α␈εβ[␈ε	M23␈↓ αX␈εβ]␈α⊗Pro␈α␈v␈α}e␈αtha␈α␈t␈αthe␈αsix␈αn␈α}um␈α␈b␈α␈ers␈αin␈α(2␈α␈2)␈αare␈αrela␈α␈ti␈α↓v␈α}ely␈αp␈α␈ri␈α↓m␈α␈e␈αin␈αpa␈α␈irs.
␈β
P␈↓ ↓g␈ε∪7.␈↓ α␈εβ[␈ε	M23␈↓ αX␈εβ]␈α⊗Pro␈α␈v␈α}e␈α(23).
␈β∞λ␈↓ ↓g␈ε∪8.␈↓ α␈εβ[␈ε	M27␈↓ αX␈εβ]␈α⊗Wh␈α␈y␈α	do␈α␈es␈α
the␈α
in␈α}teger␈α
fa␈α␈st␈α
F␈α↓o␈α␈urier␈α
m␈α␈u␈α␈lti␈α↓p␈α␈li␈α↓c␈α␈ation␈α	algorith␈α␈m␈α
bo␈α␈ther␈α
t␈α␈o␈α
w␈α␈ork
␈β∞,␈↓ α)␈εN␈↓ ∧{␈εN
␈β∞0␈↓ ↓H␈εβm␈α␈od␈αε(␈↓ α→␈εβ2␈↓ αC␈εβ+␈αα1)␈απin␈α␈stead␈αεof␈απm␈α␈od␈απ(␈↓ ∧k␈εβ2␈↓ ¬∃␈ε↔␈␈εβ␈αα1)?␈απIt␈απw␈α␈o␈α␈uld␈απs␈α␈eem␈απto␈αεbe␈αεm␈α␈uch␈αεsimp␈α␈l␈α↓er␈αεto␈απd␈α␈o␈απev␈α}eryth␈α␈ing
␈β∞T␈↓ α,␈εN
␈β∞X␈↓ ↓H␈εβm␈α␈od␈α	(␈↓ α≤␈εβ2␈↓ αJ␈ε↔␈␈εβ␈αε1),␈α
av␈α}oiding␈α	a␈α
lot␈α	of␈α
miscellan␈α␈eou␈α␈s␈α
min␈α␈u␈α␈s␈α
signs␈α	i␈α↓n␈α	the␈α	form␈α␈u␈α␈l␈α↓a␈α␈s,␈αsin␈α␈ce␈↓ 
S␈ε	|␈↓ 
q␈εβ=␈α
2
␈β∞w␈↓ πs␈ε
n
␈β∞{␈↓ πg␈εε2
␈β∞␈␈↓ ↓H␈εβc␈α␈an␈α
b␈α␈e␈α
us␈α␈ed␈α
to␈α	comp␈α␈ute␈α	f␈α↓a␈α␈st␈α
Four␈α␈i␈α↓er␈α
t␈α␈ransfo␈α␈rms␈α
mo␈α␈d␈α
(␈↓ πV␈εβ2␈↓ λ	␈ε↔␈␈εβ␈αε1).␈αWha␈α␈t␈α
w␈α␈ould␈α	go␈α
wro␈α␈ng␈α␈?
␈β∂/␈↓ βx␈εβ∂
␈β∂4␈↓ ∧∀␈εα(␈↓ 

␈εα)
␈β∂7␈↓ ↓g␈ε∪9.␈↓ α␈εβ[␈ε	M20␈↓ αX␈εβ]␈α⊗Wha␈α␈t␈αi␈α↓s␈↓ βu␈ε	u␈↓ βx␈εβ∂␈↓ ∧ ␈εβth␈α␈e␈αresu␈α␈l␈α↓t␈αo␈α␈f␈αt␈α␈wo␈α
succ␈α␈essiv␈α␈e␈αFou␈α␈rier␈αtran␈α␈sforms␈α(3␈α␈2)␈↓ 
⊗␈εβ?
␈β∂o␈↓ ↓V␈ε∪10.␈↓ α␈εβ[␈ε	M21␈↓ αX␈εβ]␈α⊗Whe␈α␈re␈αi␈α↓s␈αc␈α␈ond␈α␈ition␈α(3␈α␈4)␈αused␈α␈?
␈β⊂#␈↓ 
u␈ε~0␈α↓0
␈β⊂'␈↓ ↓V␈ε∪11.␈↓ α␈εβ[␈ε	M25␈↓ αX␈εβ]␈α⊗(S␈α␈ch␈↓ β6␈εβ∪␈↓ β6␈εβo␈↓ βF␈εβnh␈α␈age␈αλan␈α␈d␈α	S␈α␈trassen␈α␈.)␈α∀(a␈α␈)␈α	E␈α↓x␈α␈pla␈α␈i␈α↓n␈αλh␈α␈o␈α␈w␈α	to␈αλcomp␈α␈ute␈αλthe␈αλn␈α␈u␈α␈m␈α␈ber␈α␈s␈↓ 
T␈ε	W␈↓ ␈εβ=
␈β⊂6␈↓ 
p␈εr
␈β⊂O␈↓ ↓H␈ε	W␈↓ ↓u␈εβmod␈↓ α:␈εβ(␈↓ αE␈ε	K␈↓ α[␈εβ/␈α␈2)␈α
f␈α↓o␈α␈r␈α∞0␈ε↔␈α∀␈↓ ∧↔␈ε	r␈↓ ∧3␈εβ<␈↓ ∧a␈ε	K␈↓ ¬
␈εβin␈↓ ¬3␈ε	O␈↓ ¬K␈εβ(␈↓ ¬V␈ε	N␈↓ ¬u␈εβ)␈α∞ste␈α␈ps,␈α∞giv␈α␈e␈α␈n␈α
the␈α
va␈α␈lues␈α
of␈α
(␈↓ 	∨␈ε	U␈↓ 
¬␈εβ,␈↓ 
∀␈εβ.␈α¬.␈αε.␈↓ 
@␈εβ,␈↓ 
O␈ε	U␈↓ 
q␈εβ,␈↓ 
␈␈ε	U␈↓ !␈εβ)
␈β⊂Z␈↓ ↓c␈εr␈↓ 
d␈εε1␈↓ ∃␈εε0
␈β⊂[␈↓ 	5␈εK␈↓ 	F␈εε/␈α␈2␈ε~␈␈εε1
␈β⊂r␈↓ 	∩␈ε~0␈↓ 
]␈εε2␈↓ 
j␈εL␈↓ 
|␈εε+1
␈β⊂w␈↓ ↓H␈εβa␈α␈nd␈α(␈↓ α∀␈ε	V␈↓ αw␈εβ,␈↓ βε␈εβ.␈α¬.␈αε.␈↓ β2␈εβ,␈↓ βA␈ε	V␈↓ β`␈εβ,␈↓ βo␈ε	V␈↓ ∧∞␈εβ),␈αwhe␈α␈re␈↓ ¬∂␈ε	W␈↓ ¬C␈εβis␈αd␈α␈e|n␈α␈ed␈αin␈α(3␈α␈6).␈α≠(b)␈αGi␈α↓v␈α}en␈↓ λq␈ε	W␈↓ 	$␈εβ=␈↓ 	O␈ε	W␈↓ 	⎇␈εβm␈α␈od␈↓ 
A␈εβ(␈↓ 
L␈εβ2␈↓ !␈εβ)
␈β⊃↓␈↓ βS␈εε1␈↓ ∧↓␈εε0␈↓ ¬+␈εr␈↓ 	k␈εr
␈β⊃α␈↓ α'␈εK␈↓ α8␈εε/␈α␈2␈ε~␈␈εε1
␈β⊃ε␈↓ 	
␈εr
␈β⊃~␈↓ α)␈ε~0␈α↓0
␈β⊃≡␈↓ ↓H␈εβa␈α␈nd␈↓ αλ␈ε	W␈↓ α?␈εβ=␈↓ αj␈ε	W␈↓ β↔␈εβmod␈↓ β\␈εβ(␈↓ βg␈ε	K␈↓ β⎇␈εβ/␈α␈2),␈αh␈α␈o␈α␈w␈αca␈α␈n␈↓ ¬@␈ε	W␈↓ ¬s␈εβbe␈α
comp␈α␈ute␈α␈d␈αin␈↓ π`␈ε	O␈↓ πx␈εβ(␈↓ λβ␈ε	L␈↓ λ→␈εβ)␈αsteps?
␈β⊃)␈↓ βε␈εr␈↓ ¬\␈εr
␈β⊃-␈↓ α$␈εr
␈β∪(

␈β↓Y␈↓ ↓H␈εα298␈↓ α=␈ε∞A␈α␈RITH␈α␈METIC␈εα␈↓ 
b4.3.3
␈βα*␈↓ ↓V␈ε∪12.␈↓ α␈εβ[␈ε	M50␈↓ αX␈εβ]␈α⊗Imp␈α␈ro␈α␈v␈α}e␈απo␈α␈n␈απt␈α␈he␈αεl␈α↓o␈α}w␈α␈er␈απb␈α␈ou␈α␈nd␈αε(43␈α␈)␈α↓;␈αλis␈απit␈αεi␈α↓m␈α␈poss␈α␈i␈α↓b␈α␈le␈απfor␈αεa␈αεgen␈α␈eral␈απn␈α␈od␈α␈e-stru␈α␈cture
␈βαR␈↓ ↓H␈εβa␈α␈uto␈α␈mation␈α	(as␈α
d␈α␈escrib␈α␈ed␈α
a␈α␈t␈α
the␈α	close␈α
o␈α␈f␈α
Sec␈α␈ti␈α↓o␈α␈n␈α
2␈α␈.␈α↓6␈α␈)␈α
to␈α
m␈α␈u␈α␈lti␈α↓p␈α␈ly␈↓ λo␈ε	n␈↓ 	β␈εβ-b␈α␈i␈α↓t␈α	n␈α␈um␈α}bers␈α	i␈α↓n␈↓ 
j␈ε	O␈↓ α␈εβ(␈↓ 
␈ε	n␈↓ !␈εβ)
␈βαy␈↓ ↓H␈εβc␈α␈y␈α␈cles?
␈ββ,␈↓ ↓V␈ε∪13.␈↓ α␈εβ[␈ε	M25␈↓ αX␈εβ]␈α⊗(A.␈απSc␈α␈h␈↓ β↑␈εβ∪␈↓ β↑␈εβo␈↓ βo␈εβn␈α␈ha␈α␈ge.)␈α∂Wh␈α␈at␈απis␈απa␈απg␈α␈ood␈αεup␈α␈pe␈α␈r␈απbo␈α␈un␈α␈d␈απon␈αεthe␈αεtime␈απn␈α␈eede␈α␈d␈απto␈αεm␈α␈ultiply
␈ββS␈↓ ↓H␈εβa␈α␈n␈↓ ↓t␈ε	m␈↓ α∩␈εβ-b␈α␈it␈α
n␈α}um␈α␈b␈α␈er␈α	by␈α	a␈α␈n␈↓ ∧ ␈ε	n␈↓ ∧4␈εβ-␈α↓b␈α␈it␈α
n␈α}um␈α␈b␈α␈er,␈α
wh␈α␈en␈α	bo␈α␈th␈↓ π∪␈ε	m␈↓ π:␈εβan␈α␈d␈↓ πy␈ε	n␈↓ λ⊗␈εβare␈α	v␈α␈ery␈α	la␈α␈rge␈α	bu␈α␈t␈↓ 
!␈ε	n␈↓ 
>␈εβis␈α
m␈α␈u␈α␈ch
␈ββ{␈↓ ↓H␈εβlar␈α␈ger␈αth␈α␈an␈↓ αt␈ε	m␈↓ β⊃␈εβ,␈αba␈α␈sed␈αo␈α␈n␈αthe␈α
results␈αp␈α␈ro␈α␈v␈α␈e␈α␈d␈αin␈αth␈α␈i␈α↓s␈αse␈α␈ction␈αfo␈α␈r␈↓ λJ␈ε	m␈↓ λq␈εβ=␈↓ 	≠␈ε	n␈↓ 	0␈εβ?
␈β∧-␈↓ ↓V␈ε∪14.␈↓ α␈εβ[␈ε	M42␈↓ αX␈εβ]␈α⊗Write␈αa␈αp␈α␈rogra␈α␈m␈αfo␈α␈r␈αAlgorith␈α␈m␈αC␈↓ εf␈εβ,␈αin␈α␈corp␈α␈oratin␈α␈g␈αt␈α␈he␈αi␈α↓m␈α␈pro␈α␈v␈α}emen␈α}ts␈αo␈α␈f␈αex␈α␈-
␈β∧U␈↓ ↓H␈εβe␈α␈rcise␈α4␈α␈.␈α
Comp␈α␈are␈αit␈αwith␈αa␈αpro␈α␈gram␈αfor␈αAl␈α↓g␈α␈orithm␈α4.3␈α␈.␈α↓1␈α␈M␈αa␈α␈nd␈αwith␈αa␈αpro␈α␈gram␈αba␈α␈sed
␈β∧⎇␈↓ ↓H␈εβo␈α␈n␈α(2),␈αto␈αsee␈α
ho␈α␈w␈αlarg␈α␈e␈↓ ∧&␈ε	n␈↓ ∧E␈εβm␈α␈ust␈αb␈α␈e␈αbe␈α␈fore␈αAlgorith␈α␈m␈αC␈αis␈αan␈αimp␈α␈ro␈α␈v␈α}emen␈α}t.
␈β¬+␈↓ ↓;␈ε↓x
␈β¬/␈↓ ↓V␈ε∪15.␈↓ α␈εβ[␈ε	M26␈↓ αX␈εβ]␈α⊗If␈↓ β→␈ε	n␈↓ β8␈εβi␈α↓s␈α|x␈α}ed,␈αh␈α␈o␈α␈w␈αma␈α␈n␈α␈y␈αof␈αthe␈αauto␈α␈mata␈αin␈αthe␈αl␈α↓in␈α␈ear␈αi␈α↓te␈α␈rativ␈α␈e␈αarra␈α␈y␈α(4␈α␈5),
␈β¬W␈↓ ↓H␈εβ(4␈α␈6)␈α	a␈α␈re␈αλnee␈α␈ded␈αλto␈αλc␈α␈omp␈α␈ute␈αλth␈α␈e␈αλprod␈α␈uc␈α␈t␈α	o␈α␈f␈↓ ε'␈ε	n␈↓ ε;␈εβ-b␈α␈i␈α↓t␈αλn␈α␈u␈α␈m␈α␈b␈α␈ers?␈α
(Note␈αλth␈α␈at␈αλthe␈αλau␈α␈toma␈α␈ton␈↓ ∧␈ε	M
␈β¬a␈↓  ␈εj
␈β¬z␈↓ ¬p␈εr
␈β¬}␈↓ ↓H␈εβis␈αin⎇␈α␈ue␈α␈nced␈α
on␈α␈ly␈αb␈α␈y␈αth␈α␈e␈αcomp␈α␈on␈α␈en␈α␈t␈↓ ¬c␈ε	z␈↓ ελ␈εβof␈αth␈α␈e␈αma␈α␈chin␈α␈e␈αon␈α
i␈α↓ts␈αrig␈α␈h␈α␈t,␈αso␈αw␈α␈e␈αma␈α␈y␈αrem␈α␈o␈α␈v␈α␈e
␈βε
␈↓ ¬p␈εε0
␈βε&␈↓ ↓H␈εβa␈α␈l␈α↓l␈απauto␈α␈mata␈απwh␈α␈ose␈↓ βc␈ε	z␈↓ ∧β␈εβc␈α␈omp␈α␈one␈α␈n␈α␈t␈απi␈α↓s␈απalway␈α␈s␈αλzero␈απwh␈α␈ene␈α␈v␈α␈er␈απthe␈απi␈α↓n␈α␈pu␈α␈ts␈αλa␈α␈re␈↓ 	O␈ε	n␈↓ 	c␈εβ-b␈α␈it␈αλn␈α␈u␈α␈m␈α␈b␈α␈ers.)
␈βε0␈↓ βn␈εε0
␈β∪(/FONT#1=cmathx[XGP,SYS]=↓∩∪⊗↔~≠ !8:<>Xpqxz{|⎇⎇/FONT#2=cmr10[XGP,SYS]=↓∞∂⊃∪!"'()+,-./0123456789:;<=>?ABCDEFGHIJKLMNOPRSTUVWXYZ[\]↑←abcdefghijklmnopqrstuvwxyz{|⎇}}/FONT#3=cmr9[XGP,SYS]=∂⊃∪"'()+,-./0123456789:;<=>?ABCDEFGHIJKLMNOPRSTUWXYZ[\]↑abcdefghijklmnopqrstuvwxyz{|⎇}}/FONT#4=cmr8[XGP,SYS]=0ENOSTUWW/FONT#5=cmr7[XGP,SYS]=()+,./0123456789<=[]cdglmouu/FONT#6=cmr6[XGP,SYS]=()+/012345789gll/FONT#7=cmr5[XGP,SYS]=+01233/FONT#8=cmi10[XGP,SYS]=∞∂⊃∩→%ACEGKLMNOPQRTUVWZabcdefgijklmnpqrstuvwxyz{|⎇⎇/FONT#9=cmi9[XGP,SYS]=→0123456789ACEKLMNOQRUVWXZabcdefgijkmnqrtuvwxyz||/FONT#11=cmi7[XGP,SYS]=∂KLNQRTabdefijklmnpqrst⎇⎇/FONT#12=cmi6[XGP,SYS]=KLNbcdefgijkmnoqrr/FONT#13=cmi5[XGP,SYS]=Ljknqrr/FONT#14=cmsc10[XGP,SYS]=.ACDEFGHILMNOPRSTUWYY/FONT#15=cms10[XGP,SYS]=∞",-.:?ABCDEFGHIJLMNOPRSTWZ\↑abcdefghijklmnopqrstuvwxyz|⎇⎇/FONT#16=cms9[XGP,SYS]=∞'-.1234567:?ABCDGHILMNPRSTZabcdefghijklmnoprstuvxyz||/FONT#18=cmb10[XGP,SYS]=.0123456789ABCDEFHMPRSTU↑abcdefghilmnoprstuvyy/FONT#19=cmb9[XGP,SYS]=.0123456789FNgii/FONT#21=cmtt[XGP,SYS]=()*+,-012345678:ABCDEFGHIJLMNOPQRSTUVWXYZZ/FONT#22=cmsy10[XGP,SYS]=↓αλ
⊃∀∃→≤ !1bcdefgjpx⎇⎇/FONT#23=cmsy9[XGP,SYS]=↓α⊃∀∃≤ !$bcdejpp/FONT#25=cmsy7[XGP,SYS]=↓⊃∀0bcdee/FONT#26=cmsy6[XGP,SYS]=00/FONT#27=cmsy5[XGP,SYS]=00/FONT#29=cmssb[XGP,SYS]=*-.1234?ACEFHILMNOPRSTUWXabcdeghilmnoprstuwyy